#اسکریپت دادن تکسچر به متریال آماده
ابتدا متغیر از نوع Material تعریف میکنیم:
و یک متغیر دیگر برای تکسچر :
حالا توی هر تابع یا شرط و.. ای میگیم که :
🆔 @Unity_Technologies
ابتدا متغیر از نوع Material تعریف میکنیم:
public Material mat;
و یک متغیر دیگر برای تکسچر :
public Texture texture;
حالا توی هر تابع یا شرط و.. ای میگیم که :
mat.SetTexture ("_MainTex",texture);
mat.SetTexture ("در این قسمت نام متغیری که توی شیدر استفاده شده رو مینویسیم",در این قسمت تکسچر یا ... مربوط به متغیری که نامش را نوشته ایم را قرار میدهیم);
🆔 @Unity_Technologies
نام همه متغیر های #تکسچر #شیدر استاندارد #یونیتی :
_MainTex - Albedo
_MetallicGlossMap - Metallic
_BumpMap - Normal Map
_ParallaxMap - Height Map
_OcclusionMap - Occlusion
_EmissionMap - Emission
_DetailMask - Detail Mask
_DetailAlbedoMap - Detail Albedo x2
🆔 @Unity_Technologies
_MainTex - Albedo
_MetallicGlossMap - Metallic
_BumpMap - Normal Map
_ParallaxMap - Height Map
_OcclusionMap - Occlusion
_EmissionMap - Emission
_DetailMask - Detail Mask
_DetailAlbedoMap - Detail Albedo x2
🆔 @Unity_Technologies
#اسکریپت نمایش پیام یا یک صفحه وقتی برای اولین بار بازی رو اجرا میکنی
در تابع استارت :
🆔 @Unity_Technologies
در تابع استارت :
if (PlayerPrefs.HasKey ("S") == false) {
//welcome
PlayerPrefs.SetInt ("S",1);
}
اگر کلید S ذخیره نبود این شرط اجرا میشه و کلید S رو ذخیره میکنه و اگه بود اجرا نمیشه و صفحه ای برای اولین بار باز نمیکنه.🆔 @Unity_Technologies
پکیج Control Freak نسخه 2.0.1 : دانلود
پکیج FPS Guns 12 Pack نسخه 1.0 : دانلود
پکیج PlayMaker نسخه 1.9.0 : دانلود
پکیج SkyBox نسخه 1.0 : دانلود
پکیج Persian Text نسخه 1.0 : دانلود
پکیج Character Controller نسخه 1.0 : دانلود
پکیج Easy Save نسخه 3.0.1 : دانلود
پکیج Advanced AI Pro نسخه 7.2 : دانلود
پکیج Terrain To Mesh نسخه 1.23 : دانلود
پکیج Anti Cheat Toolkit نسخه 1.5.0.1 : دانلود
پکیج Terrain Composer نسخه 1.9 : دانلود
🆔 @Unity_Technologies
پکیج FPS Guns 12 Pack نسخه 1.0 : دانلود
پکیج PlayMaker نسخه 1.9.0 : دانلود
پکیج SkyBox نسخه 1.0 : دانلود
پکیج Persian Text نسخه 1.0 : دانلود
پکیج Character Controller نسخه 1.0 : دانلود
پکیج Easy Save نسخه 3.0.1 : دانلود
پکیج Advanced AI Pro نسخه 7.2 : دانلود
پکیج Terrain To Mesh نسخه 1.23 : دانلود
پکیج Anti Cheat Toolkit نسخه 1.5.0.1 : دانلود
پکیج Terrain Composer نسخه 1.9 : دانلود
🆔 @Unity_Technologies
پکیج FuturisticWeaponsSet مجموع صدای اسلحه برای یونیتی.
برای دانلود این پکیج کلیک کنید.
🆔 @Unity_Technologies
برای دانلود این پکیج کلیک کنید.
🆔 @Unity_Technologies
#آموزش حلقه for
حلقه for یه متغیر عدد صحیح در نظر میگیره و یه مقدار عددی دیگه هم میگیره و میاد چک میکنه و میگه که تا وقتی مقدار متغیرم از این مقداری که از ما میگیره کمتر بود بیا و یکی به متغیرم اضافه کن و کدی که ما نوشتیم رو اجرا کن به صورت زیر :
🆔 @Unity_Technologies
حلقه for یه متغیر عدد صحیح در نظر میگیره و یه مقدار عددی دیگه هم میگیره و میاد چک میکنه و میگه که تا وقتی مقدار متغیرم از این مقداری که از ما میگیره کمتر بود بیا و یکی به متغیرم اضافه کن و کدی که ما نوشتیم رو اجرا کن به صورت زیر :
for (int i = 0; i < my value; i++) {
//my code
}
🆔 @Unity_Technologies
Calculator.rar
18.5 KB
کتابخانه ماشین حساب #سی_شارپ.
آموزش استفاده از این کتابخانه در فایل rar قرار دارد.
🆔 @Unity_Technologies
آموزش استفاده از این کتابخانه در فایل rar قرار دارد.
🆔 @Unity_Technologies
#سوال : من میخوام یه کاری کنم که مثلا اگه شخصیتم به یه جای مشخصی رسید یه اتفاق رخ بده یا بره مرحله بعد
___________________________________________________________________
#جواب : اول یک گیم آبجکت خالی میسازید و بهش باکس کلایدر میدید و تیک is trigger رو میزنید
بعد شخصیتتون میخواید وقتی وارد کلایدر شد بره مرحله بعد میاید و یه کد ساده برای اینکار مینویسید با استفاده از تابع OnTriggerEnter که ورودی کلایدر میخواد :
void OnTriggerEnter (Collider col) {
if (col.name == "Next") {
UnityEngine.SceneManagement.SceneManager.LoadScene ("level name");
}
}
الان من گفتم اگه اسم گیم ابجکت کلایدری که شخصیت واردش میشه Next بود بیاد و بره مرحله بعد که اسمشو میتونید بجای level name بنویسید
یا میتونید یه شرط دیگه بجای این بنویسید و از تگ استفاده کنید یه تگ یه کلایدرتون میدید و مثلا اسمشو Next میزارید و شرط زیر رو تو تابع بالا مینویسید :
if (col.CompareTag ("Next")) {
UnityEngine.SceneManagement.SceneManager.LoadScene ("level name");
}
امیدوارم موفق باشید
🆔 @Unity_Technologies
___________________________________________________________________
#جواب : اول یک گیم آبجکت خالی میسازید و بهش باکس کلایدر میدید و تیک is trigger رو میزنید
بعد شخصیتتون میخواید وقتی وارد کلایدر شد بره مرحله بعد میاید و یه کد ساده برای اینکار مینویسید با استفاده از تابع OnTriggerEnter که ورودی کلایدر میخواد :
void OnTriggerEnter (Collider col) {
if (col.name == "Next") {
UnityEngine.SceneManagement.SceneManager.LoadScene ("level name");
}
}
الان من گفتم اگه اسم گیم ابجکت کلایدری که شخصیت واردش میشه Next بود بیاد و بره مرحله بعد که اسمشو میتونید بجای level name بنویسید
یا میتونید یه شرط دیگه بجای این بنویسید و از تگ استفاده کنید یه تگ یه کلایدرتون میدید و مثلا اسمشو Next میزارید و شرط زیر رو تو تابع بالا مینویسید :
if (col.CompareTag ("Next")) {
UnityEngine.SceneManagement.SceneManager.LoadScene ("level name");
}
امیدوارم موفق باشید
🆔 @Unity_Technologies
سلام دوستان.
مدلسازی هست که وقت داشته باشه و سطحشم حداقل متوسط باشه و بتونه حداقل یه کاراکتر کامل بسازه ؟
اگه کسی هست و توی تیمی عضو نیست میتونه بیاد پیوی و توی تیممون عضو شه : @Unity3D_Developer
مدلسازی هست که وقت داشته باشه و سطحشم حداقل متوسط باشه و بتونه حداقل یه کاراکتر کامل بسازه ؟
اگه کسی هست و توی تیمی عضو نیست میتونه بیاد پیوی و توی تیممون عضو شه : @Unity3D_Developer
سلام دوستان، یکی از کاربران مشکل پر شدن درایو C مواقعی که یونیتی کار میکرد داشت و گفت یونیتی و حتی پروژه ها رو توی درایو دیگه ذخیره کردم ولی باز درایو C پر میشه.
من گفتم بیام تو کانال آموزش رفع این مشلکو براتون بزارم تا همه استفاده کنید، خب ابتدا میرید منوی Edit و بعد Preferences... حالا صفحه ای باز میشه توی اون صفحه برید قسمت GI Cache و دکمه Clean Cache رو بزنید تا درایو سی هرچی ذخیره شده بوده از این طریق پاک شه قسمت متنی که با رنگ قرمز بدون شماره مشخص شده هم محل ذخیرش هست میتونید دستی پاکش کنید.
امیدوارم موفق باشید❤️❤️.
🆔 @Unity_Technologies
من گفتم بیام تو کانال آموزش رفع این مشلکو براتون بزارم تا همه استفاده کنید، خب ابتدا میرید منوی Edit و بعد Preferences... حالا صفحه ای باز میشه توی اون صفحه برید قسمت GI Cache و دکمه Clean Cache رو بزنید تا درایو سی هرچی ذخیره شده بوده از این طریق پاک شه قسمت متنی که با رنگ قرمز بدون شماره مشخص شده هم محل ذخیرش هست میتونید دستی پاکش کنید.
امیدوارم موفق باشید❤️❤️.
🆔 @Unity_Technologies
#آموزش استفاده از #Navigation (مسیر یابی) و نوشتن #اسکریپت برای عملکرد آن :
ابتدا پنجره Navigation رو از قسمت Window/Navigation باز میکنیم.
حالا همه اجسامی که بی حرکت و بی انیمیشن هستند را در حالت Static قرار دهید (اجسام رو انتخاب کنید و در بالای صفحه اینسپکتور Inspector کنار نام گیم آبجکت روی گزینه Static کلیک میکنیم تا تیک بخوره).
در این پنجره Navigation به قسمت Bake میریم و Agent Radius رو روی 0.2 تنظیم میکنیم حالا روی دکمه Bake کلیک میکنیم و صبر میکنیم...
حالا یک #اسکریپت با نام دلخواه میسازیم و بازش میکنیم... ، کتابخانه ی مربوط به Navigation رو تعریف میکنیم :
حالا میتونید اسکریپت رو به دشمن بدید و پلیر رو به متغیر player اسکریپتمون نسبت بدید و بازی رو تست کنید...
امیدوارم موفق باشید🌹🌺.
🆔 @Unity_Technologies
ابتدا پنجره Navigation رو از قسمت Window/Navigation باز میکنیم.
حالا همه اجسامی که بی حرکت و بی انیمیشن هستند را در حالت Static قرار دهید (اجسام رو انتخاب کنید و در بالای صفحه اینسپکتور Inspector کنار نام گیم آبجکت روی گزینه Static کلیک میکنیم تا تیک بخوره).
در این پنجره Navigation به قسمت Bake میریم و Agent Radius رو روی 0.2 تنظیم میکنیم حالا روی دکمه Bake کلیک میکنیم و صبر میکنیم...
حالا یک #اسکریپت با نام دلخواه میسازیم و بازش میکنیم... ، کتابخانه ی مربوط به Navigation رو تعریف میکنیم :
using UnityEngine.AI;
خب حالا متغیر از نوع NavMeshAgent و با نام دلخواه مثلا enemy میسازیم و میریم تابع استارت و کد زیر رو میزنیم :enemy = this.GetComponent<NavMeshAgent> ();
حالا میریم تابع آپدیت و میتونیم توی شرط چک فاصله بین دشمن و پلیر بنویسیمش و یا بدون شرط که از همون اول بازی میره دنبال پلیر :enemy.destination = player.transform.position;
خب دوستان میتونید یه متغیر دیگه از نوع Transform بسازید و با اسم player و بعد = پوزیشن این متغیر رو بگیرید و بریزید توی متغیر destination کامپوننت navMeshAgent دشمنمون و یا میتونید از تابع SetDestination این کامپوننت استفاده کنید به شکل زیر :enemy.SetDestination (player.transform.position);
اینجا هم اومدیم پوزیشن متغیر پلیر رو دادیم به تابع SetDestination کامپوننتمون.حالا میتونید اسکریپت رو به دشمن بدید و پلیر رو به متغیر player اسکریپتمون نسبت بدید و بازی رو تست کنید...
امیدوارم موفق باشید🌹🌺.
🆔 @Unity_Technologies
سلام دوستان کسانی که بازیشون بعد از خروجی صورتی میشه اینکارو انجام بدن :
اول به قسمت Edit / Project Settings / Graphics برید حالا به قسمت Built-in shader settings برید که توی عکس مشخصه اینجا باید همه دراپ داون هایی که هست رو روی custom shader بزاریم تا شیدرش انتخاب شه حالا میتونید بعد از اینکه روی custom shader گذاشتید دوباره به اولیه برگردونید چون دیگه شیدرش انتخاب شده پس مشکلی نیست حالا دوباره بازی رو خروجی بگیرید و تست کنید.
امیدوارم موفق باشید🌺
🆔 @Unity_Technologies
اول به قسمت Edit / Project Settings / Graphics برید حالا به قسمت Built-in shader settings برید که توی عکس مشخصه اینجا باید همه دراپ داون هایی که هست رو روی custom shader بزاریم تا شیدرش انتخاب شه حالا میتونید بعد از اینکه روی custom shader گذاشتید دوباره به اولیه برگردونید چون دیگه شیدرش انتخاب شده پس مشکلی نیست حالا دوباره بازی رو خروجی بگیرید و تست کنید.
امیدوارم موفق باشید🌺
🆔 @Unity_Technologies
#آموزش دسترسی به متغیر (عمومی و خصوصی) #اسکریپت های دیگر :
سلام بچه ها شما میتونید با یکی از روش هایی که بیان شده متغیر عمومی و خصوصی از اسکریپت های دیگه بگیرید یا مقدار دهی کنید و... .
روش اول (دسترسی به متغیر عمومی از راه متغیر) :
فرض کنید یک اسکریپت دیگر با نام Controller دارید و میخواهید از اسکریپت دیگر به متغیر Speed آن که با سطح دسترسی عمومی است دسترسی پیدا کنید، برای اینکار میایم و یک متغیر با سطح دسترسی عمومی و از نوع اسکریپت Controller و با نام دلخواه (مثال: controller) تعریف می کنیم :
حالا اسکریپت رو ذخیره کنید و به ابجکت دلخواهی نسبت بدید و حالا به یک کامپوننت تبدیل میشود و شما میتوانید متغیر های عمومی اسکریپتتان را ببینید که ما فقط به متغیر controllerکار داریم اسکریپت Controller رو به ابجکت دیگری مثلا کاراکتر اصلی بازی نسبت میدیم و ابجکت کاراکتر را در کادر متغیر controller درگ میکنیم تا اسکریپت Controller رو بگیره، حالا میتونید بازی رو اجرا کنید و لذت ببرید..
روش دوم (دسترسی به متغیر عمومی از راه کتابخانه) :
خب دوستان فرض کنید دوباره به همون اسکریپت Controller و متغیر Speed آن میخواهیم از راه کتابخانه دسترسی داشته باشیم برای اینکار باید برای کلاس هایمان یک کتابخانه در نظر بگیریم پس یکی بالاتر از خط تعریف کلاس میایم و کد زیر رو مینویسیم :
خب دوستان ابتدا توی اسکریپت Controller یا هر اسکریپتی که میخواید به متغیر خصوصیش دسترسی داشته باشید باید تابع تغییر مقدار متغیر خصوصی رو بنویسید :
خب حالا برای گرفتن مقدار از تابع برگشتی از نوع int و سطح دسترسی عمومی و با نام مثلا GetValue که باید داخل اسکریپت Controller بنویسیم استفاده میکنیم :
🚫 هر گونه کپی برداری از این کانال بدون ذکر منبع (آیدی) شرعا حرام است. 🚫
🆔 @Unity_Technologies
سلام بچه ها شما میتونید با یکی از روش هایی که بیان شده متغیر عمومی و خصوصی از اسکریپت های دیگه بگیرید یا مقدار دهی کنید و... .
روش اول (دسترسی به متغیر عمومی از راه متغیر) :
فرض کنید یک اسکریپت دیگر با نام Controller دارید و میخواهید از اسکریپت دیگر به متغیر Speed آن که با سطح دسترسی عمومی است دسترسی پیدا کنید، برای اینکار میایم و یک متغیر با سطح دسترسی عمومی و از نوع اسکریپت Controller و با نام دلخواه (مثال: controller) تعریف می کنیم :
Controller controller;
حالا در تابع مورد نظر میایم و با استفاده از متغیری که ساختیم به متغیر های اسکریپت Controller دسترسی پیدا میکنیم (برای اینکه به اسکریپت های دیگر دسترسی پیدا کنید نوع متغیر یا باید به اسم اسکریپت مورد نظر تغییر دهید) :controller.Speed = 5;
اومدیم و به متغیر Speed اسکریپت Controller دسترسی پیدا کردیم و مقدار 5 رو به اون دادیم...حالا اسکریپت رو ذخیره کنید و به ابجکت دلخواهی نسبت بدید و حالا به یک کامپوننت تبدیل میشود و شما میتوانید متغیر های عمومی اسکریپتتان را ببینید که ما فقط به متغیر controllerکار داریم اسکریپت Controller رو به ابجکت دیگری مثلا کاراکتر اصلی بازی نسبت میدیم و ابجکت کاراکتر را در کادر متغیر controller درگ میکنیم تا اسکریپت Controller رو بگیره، حالا میتونید بازی رو اجرا کنید و لذت ببرید..
روش دوم (دسترسی به متغیر عمومی از راه کتابخانه) :
خب دوستان فرض کنید دوباره به همون اسکریپت Controller و متغیر Speed آن میخواهیم از راه کتابخانه دسترسی داشته باشیم برای اینکار باید برای کلاس هایمان یک کتابخانه در نظر بگیریم پس یکی بالاتر از خط تعریف کلاس میایم و کد زیر رو مینویسیم :
public namespace ✴️ {بجای شکلک ✴️ اسم کتابخانه خود را بنویسید (نوشتن نام کتابخانه اجباری بوده و نیازی نیست نام کتابخانه با کتابخانه های دیگری برابر باشد پس هر اسم دلخواهی میتونید انتخاب کنید) برای مثال (Test)، حالا در اخرین خط اسکریپت میایم و
}
میزاریم تا با خطایی مواجعه نشیم حالا به اسکریپت دیگر خود رفته و کتابخانه ای که تعریف کردید و فراخوانی کنید :using Test;
بعد کلمه using اسم کتابخانه رو مینویسید (نکته : کتابخانه های بیرون از کلاس فراخوانی میشوند)، حالا برای دسترسی باید اسم کلاس یا همان اسکریپت را در تابع مورد نظر مینویسیم و حالا به توابع و متغیر های عمومی میتوانیم دسترسی داشته باشیم برای اینکه متغیر Speed اسکریپت Controller را مقدار دهی کنیم از کد زیر استفاده میکنیم :Controller.Speed = 3;روش سوم (دسترسی به متغیر خصوصی با استفاده از تابع عمومی) :
خب دوستان ابتدا توی اسکریپت Controller یا هر اسکریپتی که میخواید به متغیر خصوصیش دسترسی داشته باشید باید تابع تغییر مقدار متغیر خصوصی رو بنویسید :
public void SetValue (int value) {
v
al = value;
}
تابعی با سطح دسترسی عمومی و با نام SetValue تعریف کردیم که یک ورودی عدد صحیح به نام value براش در نظر گرفتیم و بعد متغیری با سطح دسترسی خصوصی به نام val در بالای توابع داخل کلاس با نوع int عدد صحیح تعریف کردیم :private int val;و در تابع عمومیمون گفتیم که مقدار متغیر val رو با متغیر عدد صحیح ورودیش برابر کنه حالا در اسکریپت دیگر از روش اول استفاده میکنیم و متغیر اسکریپت Controller یا هر اسکریپتی که میخوایم بهش دسترسی داشته باشیم رو تعریف میکنیم و حتی میتونید از روش دوم از راه کتابخانه هم این کار رو انجام بدید اما روش اول بهتر هست و ما از روش اول استفاده میکنیم حالا اسم متغیر اسکریپتمون رو مثلا controller میزاریم و توی تابع مورد نظر کد زیر رو مینویسیم :
controller.SetValue (6);
به تابع SetValue که نوشتیم دسترسی پیدا کردیم و ورودی آن را 6 قرار دادیم حالا وقتی بازی رو اجرا کنی مقدار متغیر خصوصیمون 6 میشه.خب حالا برای گرفتن مقدار از تابع برگشتی از نوع int و سطح دسترسی عمومی و با نام مثلا GetValue که باید داخل اسکریپت Controller بنویسیم استفاده میکنیم :
public int GetValue () {
return val;
}
این تابع میاد و مقدار متغیر val رو برگشت میده، برای استفاده ازش هم مثل تابع قبلی اما بدون ورودی :controller.GetValue();
حالا این هیچ اتفاقی نمیفته این تابع رو باید توی یه متغیر که باید از نوع تابع باشه بریزید یا میتونید تبدیل کنید به نوع های مختلف مثلا یه متغیر تعریف میکنیم سطح دسترسی مهم نیست و نوع هم حتما باید از نوع تابع که int هست باشه و با نام مثلا hi حالا میایم و مقداری که تابع برگشت میده رو میریزیم داخل این متغیر hi :hi = controller.GetValue():امیدوارم موفق باشید 😊🌹
🚫 هر گونه کپی برداری از این کانال بدون ذکر منبع (آیدی) شرعا حرام است. 🚫
🆔 @Unity_Technologies