اسکریپت عوض کردن رنگ متریال دلخواه با کد
#اسکریپت عوض کردن رنگ متریال دلخواه با کد.
ابتدا یه اسکریپت با نام دلخواه میسازیم سی شارپ و بعد بازش میکنیم.
حالا میایم دو متغیر اضافه میکنیم یکی از نوع متریال یا رندرر و با نام دلخواه و با سطح دسترسی عمومی :
public Material mat;
یا :
public Renderer mat;
بعد یه متغیر دیگ از نوع رنگ با سطح دسترسی عمومی میسازیم (اینو میتونیم نسازیم) :
public Color clr;
حالا میایم تو تابع دلخواه یا تو یه شرط یا هر چیز یگه ای مینویسیم :
mat.color = clr;
(این کد میاد رنگ متغیر متریال رو برابر میکنه با متغیر رنگ یا کالرمون)
اگه متغیر رنگ رو تعریف کردید برای تغییر رنگ توی ادیتور هم استفاده میشه میاید کد رو به صورت بالا مینویسید ولی اگه متغیر رو تعریف نکردید کد زیر رو بنویسید :
mat.color = Color.این قسمت رنگ مورد نظر رو مینویسیم;
(این کد میاد متغیر متریال متریالی که بهش دادیم رو میگیره و رنگشو با رنگی که در محل مشخص شده نوشتید برابر میکنه)
مثال : mat.color = Color.red;
(این کد میاد متغیر متریال، متریالی که بهش نسبت دادیم رو میگیره ورنگشو قرمز میکنه)
برای متغیر رندرر هم به این صورت مینویسیم :
mat.material.color = Color.این قسمت رنگ مورد نظر رو مینویسیم;
(این کد میاد از متغیر رندرر، رندرری که بهش نسبت دادیم متریالشو میگیره و رنگشو برابر میکنه با رنگی دلخواه شما که باید تو قسمت مشخص شده بنویسید)
مثال : mat.material.color = Color.black;
(این کد میاد متغیر رندرر که بهش یه رندرری میدیم رو متریال رندرر رو میگیره و رنگشو سیاه میکنه)
یا اگه متغیر رنگ رو تعریف کردیدبه صورت زیر بنویسید :
mat.material.color = clr;
(این کد میاد متغیر رندرر هر رندرری که بهش نسبت بدید متریالشو میگیره و رنگشو با رنگ متغیر Color مون برابر میکنه)
اینطوری میتونید توی ادیتور حتی وقتی بازی در حال اجرا هست از طریق این متغیر رنگ، رنگ متریال رو تغییر بدید و هی نیاید تو کد تغییر بدید.
حالا کد رو ذخیره کنید و بیاید تو یونیتی و صبر کنید تا کمپایل شه بعد از کمپایل شدن اسکریپتی که ساختیم رو به یک ابجکتی نسبت بدید مثلا یه گیم ابجکت خالی بسازید بهش نسبت بدید یا به دوربین و... حالا بعد از نسبت دادن چند گزینه میاد زیر اسکریپتی که نسبت دادیم (میاد کامپوننت اون گیم ابجکت میشه و چند گزینه رو نمایش میده که همون متغیر های عمومیمون هستن) میتونیم از اونجا متریال دلخواه رو نسبت بدیم یا رندرر و رنگ رو انتخاب کنیم و بازی رو یه تست بزنیم.