«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
ایجاد Tag یا برچسب برای ابجکت دلخواه در یونیتی :: گیم اور _ بازیسازی با unity + مطالب متفرقه

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
--
گروه قدیم ما promakers.ir یا پرومیکرز بود که بالای هزار اموزش توش ساخته بودم به اسم sajjad3011 ولی حیف ادمین سایتش عوض کرد
حالا سوالی بود کاری بود این شمارمه

قدیمیا دلم براتون تنگ شده... فقط معرفی کنید توی پیامک یا تماس یاد بیارید.
اگه جواب ندادم شاید موقعیت نداشته باشم.
بگید توی پیام از بچه های پرومیکرز هستید.

---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته
دوست داشتید شماره بذارید تو واتساپ یا ایتا یا .... گروه بزنیم.
09358077198

بایگانی
پیوندها

ایجاد Tag یا برچسب برای ابجکت دلخواه در یونیتی

جمعه, ۳۰ مرداد ۱۳۹۴، ۰۴:۲۴ ق.ظ

gameover.blog.ir

تگ یا Tag عنی برچسب یا اسم مستعار.
توی html ما قبلا به چند تا ابجکت id می دادیم که ثابت بود و هر ابجکت یه اسم ثابت داشت نمی تونستیم تغییرش بدیم ولی می تونستیم یه کلاس یا class تعریف کنیم و همه ی ابجکت های لخواه رو از نوع اون کلاس تعریف کنیم یا برچسب بزنیم. بعدش که میخواستیم تغییراتی روی اون ابجکت ها ایجاد کنیم دیگه دستی اینکار سخت بود. کافی بود اسم اون کلاس رو داشته باشیم و خصوصیاتشو دستکاری کنیم یا بهشون دستیابی داشته باشیم.
توی html چیزی بود تو مایه های tagByName یا tagByID که بهش ایدی میدادیم و خودش همه رو لیست می کرد بعدش میریختیم توی ارایه و با یه حلقه ی تکرار به کل ابجکت های ریخته شده توی ارایه دسترسی داشتیم و یه سری عملیات کلی روی اونا انجام میدادیم.

توی unity یه چیز توی همون مایه ها هست یبه اسم tag.
مثلا من سه تا دوربین دارم:
cam1
cam2
cam3
--
به هر سه تاشون برچسب cam می زنم
بعدش با کدی مثل این همشون رو غیر فعال می کنم:
کد:
//Disable all cameras with tag 'cam'
     var cameras = GameObject.FindGameObjectsWithTag("cam");    
     for (var cams : GameObject in cameras)
     {
      cams.GetComponent(Camera).enabled = false;      
     }
بعدش با کد
gameObject.Find("cam1").GetComponent(Camera).enabled = true;
دوربین رو فعال می کنم.
مثال :
تگ یا Tag عنی برچسب یا اسم مستعار.
توی html ما قبلا به چند تا ابجکت id می دادیم که ثابت بود و هر ابجکت یه اسم ثابت داشت نمی تونستیم تغییرش بدیم ولی می تونستیم یه کلاس یا class تعریف کنیم و همه ی ابجکت های لخواه رو از نوع اون کلاس تعریف کنیم یا برچسب بزنیم. بعدش که میخواستیم تغییراتی روی اون ابجکت ها ایجاد کنیم دیگه دستی اینکار سخت بود. کافی بود اسم اون کلاس رو داشته باشیم و خصوصیاتشو دستکاری کنیم یا بهشون دستیابی داشته باشیم.
توی html چیزی بود تو مایه های tagByName یا tagByID که بهش ایدی میدادیم و خودش همه رو لیست می کرد بعدش میریختیم توی ارایه و با یه حلقه ی تکرار به کل ابجکت های ریخته شده توی ارایه دسترسی داشتیم و یه سری عملیات کلی روی اونا انجام میدادیم.

توی unity یه چیز توی همون مایه ها هست یبه اسم tag.
مثلا من سه تا دوربین دارم:
cam1
cam2
cam3
--
به هر سه تاشون برچسب cam می زنم
بعدش با کدی مثل این همشون رو غیر فعال می کنم:
کد:
//Disable all cameras with tag 'cam'
     var cameras = GameObject.FindGameObjectsWithTag("cam");    
     for (var cams : GameObject in cameras)
     {
      cams.GetComponent(Camera).enabled = false;      
     }
بعدش با کد
gameObject.Find("cam1").GetComponent(Camera).enabled = true;
دوربین رو فعال می کنم.
مثال :

ابتدا باید سه تا دوربین بذاریم و قبلش یه تگ بسازیم به اسم cam.
چطوری تگ میسازیم الان می گم :
http://s5.picofile.com/file/8127240734/tag_rename_new_Tag_Create.jpg
بعدش هر دوربین رو انتخاب و تگ cam رو که توی مرحله ی قبلی ساختیم واسش توی inspector تنظیم یا set می کنیم. این کارو واسه هر سه دوربین باید انجام بدیم.
http://s5.picofile.com/file/8127241434/set_created_tag_to_gameObject.jpg
اسکریپت هم js بود که گفتم. روی هر سه دوربین اعمال کنید و بازی رو play کنید.
حالا با فشردن کلید 1 و 2 و 3 می تونید روی سه تا دوربین سوئیچ کنید و از سه زاویه صحنه رو مشاهده کنید.
http://s5.picofile.com/file/8127242750/camera_active.jpg
آخرین تغییراتی که روی اسکریپت اعمال کردم اینه :
کد PHP:
//camSwitch.js
//-----------------------------------------------------------------------
    
function Update () {
     if(
Input.GetKey("1")){
      
Debug.Log("cam 1 active");
      
camSwap(1);
     }
     if(
Input.GetKey("2")){
      
Debug.Log("cam 2 active");
      
camSwap(2);
     }
     if(
Input.GetKey("3")){
      
Debug.Log("cam 3 active");
      
camSwap(3);
     }
    }
     
   
//-----------------------------------------------------------------------
    
      
function camSwap(currentCam int)
      {
    
    
//Disable all cameras with tag 'cam'
     
var cameras GameObject.FindGameObjectsWithTag("cam");     
     for (var 
cams GameObject in cameras)
     {
      
cams.GetComponent(Camera).enabled false;      
     }    
    

     
//Enable camera number 'currentCam'
     
var oneToUse String "camera"currentCam;
     
gameObject.Find(oneToUse).GetComponent(Camera).enabled true;
     
     
     
    }
    
//---------

//---------
موافقین ۰ مخالفین ۰ ۹۴/۰۵/۳۰
مدیرکل

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی