Такой вот вопрос- делаю казуалку на Unity. Встал вопрос об автоматическом выборе настроек графики под конкретную машину.
Знаю что в Unity таких билибитек .нет .
Есть вариант написать соответствующий dll на C++ или Delphi но это как самый последний вариант т.к. на ф..а
это делать когда в .Net езь WMI.
Вот только вразумительного примера определения видеоадаптера и монитора на локальной машине я не нашел(на MSDN тоже примера голяк).
Нашел только на пример и переписал на 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...