Определение Параметров Железа

Программирование на Юнити.

Определение Параметров Железа

Сообщение Guzyano 22 июн 2010, 13:14

Такой вот вопрос- делаю казуалку на Unity. Встал вопрос об автоматическом выборе настроек графики под конкретную машину.
Знаю что в Unity таких билибитек .нет .
Есть вариант написать соответствующий dll на C++ или Delphi но это как самый последний вариант т.к. на ф..а
это делать когда в .Net езь WMI.

Вот только вразумительного примера определения видеоадаптера и монитора на локальной машине я не нашел(на MSDN тоже примера голяк).
Нашел только на (c#) пример и переписал на Unity

using System;
using System.Management;
using UnityEngine;
using System.Collections;

public class CHTest : MonoBehaviour {

void Start ()
{
TestVga();
}

void TestVga()
{
ManagementScope sc=new ManagementScope(@"\\.\root\cimv2",null);
ManagementPath ph=new ManagementPath(@"Win32_VideoController");
ManagementClass mc=new ManagementClass(sc,ph,null);

foreach(ManagementObject ss in mc.GetInstances())
{
print("////////// \\\\\\\\\\\\\\\\");
print("Name: "+ss.GetPropertyValue("Name"));
print("Processor: "+ss.GetPropertyValue("VideoProcessor"));
print("VideoRAM: "+ss.GetPropertyValue("AdapterRAM"));
print("Resolution "+ss.GetPropertyValue("VideoModeDescription"));
print("Refresh "+ss.GetPropertyValue("CurrentRefreshRate"));

}
}
}

System.Management не видит (Хотя в Unity езь такая dll)
закинул в Plugins из Framework'a System.Management.dll - вылетает Unity(походу dll не та)

Переписал На JavaScript - System.Management видит не вылетает только пишет
NotImplementedException: The requested feature is not implemented.

возможно не правильно перевел путь с C# в JavaScript
пробовал и так
sc=new ManagementScope("//./root/cimv2", null);
и так
sc=new ManagementScope("\\.\\root\\cimv2", null);
а так ваще ругаеться
sc=new ManagementScope("\\.\root\cimv2", null);

может в параметр null передавать параметр хотя в книжке C# сборник рецептов этого не было???
Anybody Help!!!
Лучше конечно ответ на JS...
Guzyano
UNец
 
Сообщения: 49
Зарегистрирован: 22 июн 2010, 12:31
Откуда: Минск
  • Сайт

Re: Определение Параметров Железа

Сообщение Zaicheg 22 июн 2010, 13:17

Вы точно смотрели класс SystemInfo в Unity API?

И ещё, System.Management — это из какого фреймворка? Подозреваю, что из 3+, и в Unity не поддерживается.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Определение Параметров Железа

Сообщение Guzyano 22 июн 2010, 13:44

Уже Смотрел но там нету параметров монитора насколько я понял - как узнать хотя бы аспект и разрешение???
Guzyano
UNец
 
Сообщения: 49
Зарегистрирован: 22 июн 2010, 12:31
Откуда: Минск
  • Сайт

Re: Определение Параметров Железа

Сообщение Zaicheg 22 июн 2010, 13:49

Guzyano писал(а):Уже Смотрел но там нету параметров монитора насколько я понял - как узнать хотя бы аспект и разрешение???

В стандалоне — Screen.currentResolution.
В вебе — никак. Хотя Гноблин вроде писал о каком-то извращении на эту тему.
Дьяченко Роман
e-mail: _zaicheg.reg@gmail.com
skype: zaicheg12
vkontakte: _vk.com/zaichegq
Работа: _wie3.com _www.sanviz.com
Аватара пользователя
Zaicheg
Адепт
 
Сообщения: 3024
Зарегистрирован: 19 июн 2009, 15:12
Откуда: Череповец

Re: Определение Параметров Железа

Сообщение Guzyano 22 июн 2010, 14:06

Во первых насколько я юзал ету функцию Screen.currentResolution ее можно вызывать только после того как игра запустится , а как известно что в момент запуска Unity устанавливает разрешение которое указано в Quality Settings для всех мониторов одно и то же.

второе System.Management.dll есть и в frameworke 1.4 и в FrameWorke 2.0 так же оно есть и в
Unity\Editor\Data\MonoCompiler.framework
и в
Unity\Editor\Data\Frameworks\Mono.framework

Не понятно так же какая юнити разница какаую внешнюю функцию вызывать...
Guzyano
UNец
 
Сообщения: 49
Зарегистрирован: 22 июн 2010, 12:31
Откуда: Минск
  • Сайт

Re: Определение Параметров Железа

Сообщение Guzyano 22 июн 2010, 14:20

Я имею ввиду то что Unity не должно быть разницы на то какая внешняя функция вызываеться из фреймворка и его версия главное что бы на пользовательском компе стоял нужный фреймворк(или обязать при инстале заинсталить нужный) тем более если ты dll из которой вызываешь кидаешь в папку Plugins. а она уже оттуда может юзать другие dll любого формата абы те были в природе... (Вообщето dll затем и делались )

Может я чего не знаю просто про Unity... но в стандартном программировании на C++ и Delphi именно так
Guzyano
UNец
 
Сообщения: 49
Зарегистрирован: 22 июн 2010, 12:31
Откуда: Минск
  • Сайт

Re: Определение Параметров Железа

Сообщение DbIMok 22 июн 2010, 14:37

Guzyano писал(а):Screen.currentResolution ее можно вызывать только после того как игра запустится

а цель выполнить что-то до запуска игры? игра все равно запустится с окошком, определенным в установках проекта.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Определение Параметров Железа

Сообщение Guzyano 22 июн 2010, 14:59

Цель убрать это дурное окошко и выставить резолюшен под соответсвующий аспект автоматически
в зависимости от монитора параметров видеокарты и процессора с ОЗУ.
Окошко убирается очень просто а вот с определением параметров монитора(хотя бы ) у меня траблы
Guzyano
UNец
 
Сообщения: 49
Зарегистрирован: 22 июн 2010, 12:31
Откуда: Минск
  • Сайт

Re: Определение Параметров Железа

Сообщение Guzyano 22 июн 2010, 15:05

потому что в любой нормальной игре не говоря уже о топовых проектах этого жанра все должно быть автоматически дабы облегчить пользователю жизнь настолько насколько это возможно...
так как в Юнити нету нормального класса который бы удовлетворял заданным требованиям надо писать либо свою dll либо использовать .Net ...
так вот какую библиотеку надо использовать и как??? - этот вопрос пока открыт.
Guzyano
UNец
 
Сообщения: 49
Зарегистрирован: 22 июн 2010, 12:31
Откуда: Минск
  • Сайт

Re: Определение Параметров Железа

Сообщение DbIMok 22 июн 2010, 15:25

мы делаем так - при запуске игры появляется окошко 640х480. оно сразу же автоматически средствами [unity 3D] разворачивается до нужного размера, либо на полный экран, в зависимости от установок.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Определение Параметров Железа

Сообщение Guzyano 22 июн 2010, 15:28

Screen.currentResolution
Короче в Фулл скрине эта фича будет показывать резолюшен который указан ProjectSettings\Player.
Guzyano
UNец
 
Сообщения: 49
Зарегистрирован: 22 июн 2010, 12:31
Откуда: Минск
  • Сайт

Re: Определение Параметров Железа

Сообщение DbIMok 22 июн 2010, 15:36

конечно. поэтому изначально окошко, а потом уже установка параметров.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Определение Параметров Железа

Сообщение Guzyano 22 июн 2010, 15:39

вот это ближе к делу
и этого окна и перехода ваще не видно???

спасибо, Это похоже на решение проблемы !!!
сейчас затестим
Guzyano
UNец
 
Сообщения: 49
Зарегистрирован: 22 июн 2010, 12:31
Откуда: Минск
  • Сайт

Re: Определение Параметров Железа

Сообщение Guzyano 22 июн 2010, 16:32

Все ОК!!! только из-за того что у меня Indie сначала заставка проигрываеться в маленьком окне..
На PRO я думаю все ок будет...
P.S. всем (3A4OT) кроме меня - меня на пересдачу экзаменов.
Guzyano
UNец
 
Сообщения: 49
Зарегистрирован: 22 июн 2010, 12:31
Откуда: Минск
  • Сайт


Вернуться в Скрипты

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10