Unity Technologies
268 subscribers
129 photos
3 videos
173 files
194 links
channel: @Unity_Technologies
site: hd-games.blog.ir
youtube: youtube.com/channel/UCEzBhjvahxYnFcC_1CIVMfg

🚫 هر گونه کپی برداری از این کانال بدون ذکر منبع (آیدی) شرعا حرام است. 🚫
🆔 @Unity_Technologies
Download Telegram
#اجرای صدای رندوم (تصادفی) به صورت داینامیک با #سی_شارپ کلاس Random و تابع Range در نرم افزار #یونیتی :
برای اینکار یه متغیر از جنسAudio Source تعریف میکنیم که صدا هارو بدیم بهش و پخش کنیم :
public AudioSource audioSource;
و یه متغیر ارایه ای از جنس AudioClip که اهنگ هایی هستش ک رندوم انتخاب میشن :
public AudioClip[] audios;

حالا برای اینکه یه صدای رندوم بین صدا هایی که اختصاص دادیم به متغیر audios رو انتخاب کنیم از تابع Range کلاس Random استفاده میکنیم و length رو length متغیر audios میدیم و کمترین عدد هم 0 و میریزیم توی یه متغیر عدد صحیح :
int rand = Random.Range(0, audios.Length);

خب حالا برای اینکه صدا رو انتخاب کنیم با عدد بدست اومده تصادفی میایم [] جلوی متغیر audios میزاریم که یه عدد میگیره int که مثلا 5 بدین میاد چهارمین صدا رو برای ما انتخاب میکنه چون از 0 شروع میشه پس 4 انتخاب میکنه حالا این صدا رو باید بدیم به Audio Source مون :
audioSource.clip = audios[rand];
خب به همین راحتی تونستیم صدای تصادفی انتخاب کنیم و بدیم به audio source حالا میخوایم که اجرا کنیم صدا رو :
audioSource.Play();

🆔 @Unity_Technologies
Forwarded from Hadi
Hadi
Photo
Blender 2.80 بدون هیچ پلاگینی |:
سوال:‌
چکار کنم که یه مسیری قفل باشه و پلیر باید بره و چند جا رو بگرده و یا کلید پیدا کنه وبعد مسیر باز شه؟؟

جواب:
وقتی کاربر داره اینکارو انجام میده مثلا در رو باز میکنه مثلا روی در کلیک کرد در باز شد اونموقع که در باز میشه اونجا مثلا یه متغیر بولین رو فعال کن بعدا چک کن اگه فعال بود بدون که این درو باز کرده حالا باید بره در دوم باز کنه.
یا میتونی یه متغیر از جنس int بسازی هر مرحله رو که برد یکی به متغیر اضافه شه بعد مثلا میتونی چک کنی اگه ۵ دور از بازی برنده شد دیگه کلا برنده شه.

حالا شاید بخوای کاربر به یه مکانی پا گذاشت و رفت توی اون مکان بفهمی این هم با کلایدر انجام میشه تیک is trigger کلایدر رو میزنی بعد از تابع OnTriggerEnter استفاده میکنی ک یه پارامتر یا ورودی از جنس Collider داره برای برخورد با جسم دیگری از تابع OnCollisionEnter که یه پارامتر یا ورودی از جنس Collision داره که توی این پارامتر مشخصات اون چیزی که برخورد کرده رو میده حالا مثلا میخوای اگه از برخورد خارج شد یا از اون محل خارج شد اینو چک کنی میای بجای Enter از Exit استفاده میکنی OnTriggerExit یا مثلا میخوای وقتی داخل اون مکان بود چک کنی OnTriggerStay استفاده کن.

🆔 @Unity_Technologies
سوال:
میخوام یه کاری بکنم که پلیر که راه میره دوربین دنبالش بره

جواب:
ببین یه متغیر از جنس ترنسفرم تعریف میکنی و توی ادیتور یونیتی میای بهش دوربین رو نسبت میدی و یه متغیر هم برای پلیر میسازی از جنس ترنسفرم
بعد میای پوزیشن دوربین رو مساوی قرار میدی با یه وکتور تیری جدید میسازی و x , y , z پوزیشن پلیر رو میدی بهش بعد پوزیشن z رو منفی یه عددی میکنی مثلا وقتی پلیر رفت جلو دوربین یکم عقب تر از پلیر قرار بگیره پس مثلا منفی ۸ چیز کن خودت تست کن هرکدوم خوب بود یا میتونی براش یه متغیر بسازی و توی ادیتور تنظیم کنی بقیه جهت ها هم همینطور
حالا این یکم خشک هست میتونی از تابع Lerp کلاس Vector3 هم استفاده کنی.

🆔 @Unity_Technologies
😐😂
رندر 8K با یونیتی نسخه 5.6.6f2

🆔 @Unity_Technologies - @Hadi_H_D
رندر 8K با یونیتی نسخه 5.6.6f2

🆔 @Unity_Technologies - @Hadi_H_D
#آموزش تابع LookAt از کلاس Transform در #یونیتی :
دوستان این تابع یک پارامتر داره که جنسش ترنسفرم Transform هست و کار این تابع هم که از اسمش معلومه روی اسمش معلومه میاد ترنسفرمی که این تابع رو باهاش فراخوانی کردید رو می چرخونه به سمت هدف یا همون ترنسفرمی که دادید به پارامترش مثلا برای تست میتونید برای ترنسفرم دوربین از این تابع استفاده کنید و یه ترنسفرم دیگه بدید به پارامتر حالا توی پلی مود میبینید که دوربین به سمت اون ترنسفرمی که دادید به تابع میچرخه انگار رو اون قفل شده نگاهش.

طرز استفاده از این تابع همونطور که توی توضیحات گفته شد یه پارامتر داره از نوع ترنسفرم که بهش یه ترنسفرم میدید :

public Transform t;
..
transform.LookAt(t);

اسکریپت رو به هر ابجکتی که میدید اون ابجکت به ترنسفرمی که دادید به متغیر t نگاهش قفل میشه یعنی روشو به سمت اون ترنسفرم قرار میده.
حالا شما میخواید یه متغیر دیگه از نوع ترنسفرم تعریف کنید و تابع LookAt این ترنسفرمی که تعریف کردید رو فراخوانی کنید یعنی این متغیر ترنسفرم که تعریف کردید میخواید به یه ترنسفرم دیگه نگاه کنه برای اینکار یه متغیر دیگه هم تعریف میکنیم و .. :
public Transform t;
public Transform t2;
..
t2.LookAt(t);

به جای trasnform اسم متغیر رو مینویسیم.
امیدوارم موفق باشید.

🆔 @Unity_Technologies
#آموزش تابع SetParent و متغیر parent از کلاس Transform در #یونیتی :
دوستان با این تابع از اسمش معلومه میتونید یه پرنت برای ترنسفرمتون تنظیم کنید که نحوه استفادش هم اینطوری هست :
public Transform parent;

transform.SetParent (parent);

دوستان این تابع برای تنظیم پرنت بود حالا یه متغیر هم داره که این تابع میاد بهش نسبت میده ترنفسرمی که میدیم بهش رو میتونیم همینو خودمون انجام بدیم :

public Transform myParent;

transform.parent = myParent;
یا میتونید کلا حذفش کنید :
transform.parent = null;


🆔 @Unity_Technologies
#آموزش تابع Rotate از کلاس Transform در #یونیتی :
با این تابع میتونید ابجکتتون رو بچرخونید طرز استفادش :

public Vector3 vector3;

transform.Rotate(vector3);

——————
public Vector3 vector3;

transform.Rotate(vector3, Space.World);

——————
public Vector3 vector3;

transform.Rotate(vector3, 90);



public void Rotate(Vector3 eulerAngles);
public void Rotate(Vector3 eulerAngles, Space relativeTo);
public void Rotate(Vector3 axis, float angle);

🆔 @Unity_Technologies
#آموزش و #کاربرد متغیر systemCopyBuffer از کلاس GUIUtility در #یونیتی :
دوستان این متغیر متنی که کپی کردید رو بهتون میده که میتونید برای پیست و کپی ازش استفاده کنید :

برای پیست کردن باید مقدار این متغیر رو بگیرید و جایی که میخواید جایگذاری کنیدش مثال :
public Text txt;
txt.text = GUIUtility.systemCopyBuffer;
برای اینکه کپی کنید هم مقدار دهی میکنید :
GUIUtility.systemCopyBuffer = "Hi";

🆔 @Unity_Technologies
#آموزش تابع SetVertices از کلاس Mesh در #یونیتی :
دوستان با این تابع میتونید Vertices مِش رو ویرایش کنید.

public Mesh mesh;
public List<Vector3> v3;

mesh.SetVertices (v3);


حالا توی ادیت مود میتونید مش رو نسبت بدید و Vertices رو ویرایش کنید

public void SetVertices(List<Vector3> inVertices);

🆔
@Unity_Technologies
#آموزش تابع Instantiate از کلاس Object در #یونیتی :
دوستان با این تابع میتونید ابجکت تولید و ایجاد کنید توی صحنتون.

public GameObject obj;
public Vector3 pos;
public Quaternion rot;

Instantiate(obj, pos, rot);

این میاد توی پوزیشن و روتیشنی که تایین کردین متغیر obj رو ایجاد میکنه توی صحنه.

حالا شاید شما بخواید بعد از ایجاد این ابجکت رو ویرایش کنید و بهش دسترسی داشته باشید، تابع Instantiate بازگشتی هست و Object بر میگردونه شما میتونید اینو توی یه متغیر بریزید و بهش دسترسی داشته باشید :

public GameObject obj;
public Vector3 pos;
public Quaternion rot;

GameObject myObj = Instantiate(obj, pos, rot).gameObject;


گیم ابجکتشو میگیریم و میریزیم داخل متغیر myObj
حالا بهش دسترسی داریم.

myObj.transform.Rotate(5,5,5);



🆔 @Unity_Technologies