درود مهمان گرامی! ثبت نام

آموزش ساخت بازی در #C آموزش UDK آموزش مدل سازی در Maya
آموزش ساخت بازی در VB آموزش Unity - پروژه محور آموزش مدل سازی با 3Ds Max
آموزش برنامه نویسی اندروید آموزش Unity - ساخت منو آموزش متحرک سازی در 3Ds Max
آموزش ساخت بازی حدس تصویر آموزش Unity - متحرک سازی مجموعه آموزش های ساخت بازی
● آموزش های رایگان ● تبلیغات دیجیتال هوشمند ● استخدام در فرادرس

امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
گم کردن system.Management در یونیتی
#1
سلام من در بازی که مینویسم نیاز دارم به پورت سریال وصل بشم و باید com مربوط به پورتی که وصل شده را در کد پیدا کنم
کد:
ManagementObjectSearchersearcher=newManagementObjectSearcher("root\\CIMV2","SELECT*FROMWin32_PnPEntityWHEREClassGuid="{4d36e978-e325-11ce-bfc1-08002be10318}"");

foreach(ManagementObject readQueryObj insearcher.Get()){

objectraedCaptionObj=readQueryObj["Caption"];

if(raedCaptionObj !=null&&raedCaptionObj.ToString().Contains("Arduino")){

string[]readCaption=raedCaptionObj.ToString().Split(newstring[]{"ArduinoUno(",")"},StringSplitOptions.RemoveEmptyEntries);

_serialPort=null;

_serialPort=newSerialPort(readCaption[0],250000,Parity.None,8,StopBits.One){

                   Handshake =Handshake.None,

                   ReadTimeout =500,

                   WriteTimeout =500

};

}

}


نوشتم ولی خطایی میده که

error CS0234: The type or namespace name `Management' does not exist in the namespace `System'. Are you missing an assembly reference?

راه حل رفع مشکل چیه؟
من همین کد را در برنامه ویندوزی در سی شارپ نوشتم کار میکنه ولی نمیدونم چرا تو مونو خطا میده!!!
لطفا سریعتر کمکم کنید
پاسخ
#2
سلام.
خود ویژوال استدیو جواب رو داده:
Are you missing an assembly reference?
شما یادتون رفته کتابخونه مورد نظر رو بالای کد بذارید (بین usingها)
کیــــــــــ qwerty13 ـــــــوورتی13
پاسخ
#3
(26/6/1397، 10:30 صبح)qwerty13 نوشته است: سلام.
خود ویژوال استدیو جواب رو داده:
Are you missing an assembly reference?
شما یادتون رفته کتابخونه مورد نظر رو بالای کد بذارید (بین usingها)

من تو مونو اسکریپت رو نوشتم بالای کد هم کتابخانه رو اضافه کردم اسکریپت رو تو مونو ران میکنم خطایی نمیگیره ولی وقتی خود بازی را تو یونیتی ران میکنم این خطارو تو کنسول یونیتی میده!!
پاسخ
#4
مطمئنید فایل dll این کتابخونه سر جاش هست؟
اینجا نوشته شده برای حل مشکل برید به Edit > Project Settings > Player و Api Compatibility Level رو به  .NET 2.0 (بدون subset) تغییر بدین.
کیــــــــــ qwerty13 ـــــــوورتی13
پاسخ
#5
(26/6/1397، 11:13 صبح)qwerty13 نوشته است: مطمئنید فایل dll این کتابخونه سر جاش هست؟
اینجا نوشته شده برای حل مشکل برید به Edit > Project Settings > Player و Api Compatibility Level رو به  .NET 2.0 (بدون subset) تغییر بدین.

dll رو تو مونو به رفرنسها اضافه کردم و using هم نوشتم تو منو هیچ خطایی نمیده موردی که هم فرمودید NET 2.0 تغییر دادم چون برای قبول رفرنس system.io.port تغییر داده بودم نمیدونم چرا وقتی ران میکنم این خطارو میده
تو پوشه C:\Program Files\Unity\Editor\Data\Mono\lib\mono\2.0 هم dll مربوطه وجود داره آیا جای دیگه ای هم باید اضافه اش کنم؟
الان یونیتی نمیشناسه
پاسخ
#6
حالا چرا از system.Management استفاده می کنید؟ اینجا کد معمولی C# رو استفاده می کنن و جواب هم میده. (البته پایینشم نوشتن که برای تنظیم پورت سریال از روش

کد:
sp = new SerialPort ( "\\\\.\\COM58", 115200) ;

استفاده کنید.)
کیــــــــــ qwerty13 ـــــــوورتی13
پاسخ
#7
(26/6/1397، 11:33 صبح)qwerty13 نوشته است: حالا چرا از system.Management استفاده می کنید؟ اینجا کد معمولی C# رو استفاده می کنن و جواب هم میده. (البته پایینشم نوشتن که برای تنظیم پورت سریال از روش

کد:
sp = new SerialPort ( "\\\\.\\COM58", 115200) ;

استفاده کنید.)

حرف شما کاملا درست ممنون از راهنماییتون
من از همین روش برای تست بازیم استفاده کردم و بازی مشکلی نداره ولی باید حتما com که دستگاه وصل میشه رو به بازی بگم ولی من از طریق کد اولی میخوام وقتی بازی اجرا شد خودش پورت را پیدا کنه و نیازی نداشته باشه من بهش بگم به کدام com وصل بشه
پاسخ
#8
اینطوری که من پیدا کردم مونو همه dll هارو پشتیبانی نمیکنه و باید دستی اضافه ش کنید.

اینجا نوشته فایل dll رو در یک پوشه در assets پروژه تون کپی کنید؛ بعد در ویژوال استدیو (موقعی که پروژه میاد توش تا کد هاتون رو ویرایش کنید) روی Analyzers بزنید و بعد Project رو انتخاب کنید؛ در نهایت Add Reference رو بزنید و فایل Dll رو پیدا کنید و بهش بدید... +
کیــــــــــ qwerty13 ـــــــوورتی13
پاسخ
#9
(26/6/1397، 12:49 عصر)qwerty13 نوشته است: اینطوری که من پیدا کردم مونو همه dll هارو پشتیبانی نمیکنه و باید دستی اضافه ش کنید.

اینجا نوشته فایل dll رو در یک پوشه در assets پروژه تون کپی کنید؛ بعد در ویژوال استدیو (موقعی که پروژه میاد توش تا کد هاتون رو ویرایش کنید) روی Analyzers بزنید و بعد Project رو انتخاب کنید؛ در نهایت Add Reference رو بزنید و فایل Dll رو پیدا کنید و بهش بدید... +

ممنون از راهنمایی اون خطا رفع شد ولی خطای جدیدی تو یونیتی میده


NotImplementedException: The requested feature is not implemented.
System.Management.ManagementObjectSearcher..ctor (System.String scope, System.String queryString)
(wrapper remoting-invoke-with-check) System.Management.ManagementObjectSearcher:.ctor (string,string)
پاسخ
#10
اینجا یکی همین سوال رو پرسیده بوده و بعد خودش جواب داده که از Tools -> Preferences باید runtime رو از Microsoft .NET به mono تغییر بدید.
کیــــــــــ qwerty13 ـــــــوورتی13
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
NewText پاک کردن ذخیره ilia1383 5 290 9/5/1396، 07:37 عصر
آخرین ارسال: Milad_Hyper
Thumbs Up باز کردن نرم افزار ilia1383 2 278 9/5/1396، 04:56 عصر
آخرین ارسال: ilia1383
  نیازمند به چند نفر برای کامل کردن تیم حمید متجلی 0 430 16/6/1395، 03:37 عصر
آخرین ارسال: حمید متجلی
Exclamation ذخیره کردن مرحله ali.bargh 0 395 9/6/1395، 11:49 عصر
آخرین ارسال: ali.bargh
  پنهان کردن آبجکت دیگر soshyant 1 521 14/2/1395، 10:06 عصر
آخرین ارسال: شهابم



کاربرانِ درحال بازدید از این موضوع: 1 مهمان