Forwarded from Hadi HD
InControl 1.7.0.unitypackage
1.5 MB
#پکیج InControl نسخه 1.7.0 برای #یونیتی
با استفاده از این پکیج میتونید کنترلر هایی مانند xbox 360 , xbox one , ps3 , ps4 , ps vita psm , apple MFi ، تاچ و کیبورد و ماوس و ...
🆔 @Unity_Technologies
با استفاده از این پکیج میتونید کنترلر هایی مانند xbox 360 , xbox one , ps3 , ps4 , ps vita psm , apple MFi ، تاچ و کیبورد و ماوس و ...
🆔 @Unity_Technologies
Forwarded from Hadi HD
Runtime Editor 1.3.2u.unitypackage
20.7 MB
#پکیج Runtime Editor نسخه 1.3.2u2 برای #یونیتی
با استفاده از این پکیج میتونید یه لول ادیتور داخل خود بازیتون بسازید و کاربر بتونه مرحله رو تغییر بده و کلا میتونید موقعی که بازی در حال اجراست تغییراتی به محیط و .. بدید
🆔 @Unity_Technologies
با استفاده از این پکیج میتونید یه لول ادیتور داخل خود بازیتون بسازید و کاربر بتونه مرحله رو تغییر بده و کلا میتونید موقعی که بازی در حال اجراست تغییراتی به محیط و .. بدید
🆔 @Unity_Technologies
Forwarded from Hadi HD
Pro Draw Call Optimizer 4.3.5.unitypackage
44.4 KB
#پکیج Pro Draw Call Optimizer نسخه 4.3.5 برای #یونیتی
با استفاده از این پکیج میتونید تکسچر هاتونو پک کنید و واسه بهینه سازی بازیتون خیلی کمک میکنه
🆔 @Unity_Technologies
با استفاده از این پکیج میتونید تکسچر هاتونو پک کنید و واسه بهینه سازی بازیتون خیلی کمک میکنه
🆔 @Unity_Technologies
#اسکریپت جلوگیری از به خواب رفتن صفحه ی گوشی در #یونیتی
دوستان کلاس Screen میتونید ازش سایز صفحه و کلی اطلاعات دیگه بگیرید ولی یه چیز جالبی که هست متغیر sleepTimeout هست که میتونید مانع از به خواب رفتن صفحه ی گوشی بشید برای مثال :
🆔 @Unity_Technologies
دوستان کلاس Screen میتونید ازش سایز صفحه و کلی اطلاعات دیگه بگیرید ولی یه چیز جالبی که هست متغیر sleepTimeout هست که میتونید مانع از به خواب رفتن صفحه ی گوشی بشید برای مثال :
Screen.sleepTimeout = SleepTimeout.NeverSleep;این کد رو داخل تابعی یا هرجا که دلتون خواست بنویسید و تست کنید میبیند که دیگه صفحه ی گوشی به خواب نمیره.
🆔 @Unity_Technologies
#اسکریپت تاخیر در #یونیتی
دو کلاس WaitForSecondsRealtime و WaitForSeconds که فرقشون ریل تایم بود و نبودن هست از اسمشون هم مشخصه با این دو کلاس میتونید توی اسکریپتتون تاخیر به هر زمانی که میخواید این کلاس ها داخل توابع IEnumerator قابل استفاده هستش برای مثال :
کلاس WaitForSeconds هم همینطور استفاده میشه و هیچ فرقی تو طرز استفادشون نیست.
بجای عدد 5 هر عدد دیگه ای میتونید بنویسید و زمان دلخواهی برای تاخیر انتخاب کنید.
برای فراخونی این تابع باید از تابع StartCoroutine استفاده کنید مثال :
دو کلاس WaitForSecondsRealtime و WaitForSeconds که فرقشون ریل تایم بود و نبودن هست از اسمشون هم مشخصه با این دو کلاس میتونید توی اسکریپتتون تاخیر به هر زمانی که میخواید این کلاس ها داخل توابع IEnumerator قابل استفاده هستش برای مثال :
IEnumerator Test()
{
Debug.Log("Loading...");
yield return new WaitForSecondsRealtime(5);
Debug.Log("Hello");
}
اگه تابع بالا رو بنویسید و فراخونی و تستش کنید میبینید که اول Loading... رو لاگ میکنه و بعد 5 ثانیه Hello لاگ میشه.کلاس WaitForSeconds هم همینطور استفاده میشه و هیچ فرقی تو طرز استفادشون نیست.
بجای عدد 5 هر عدد دیگه ای میتونید بنویسید و زمان دلخواهی برای تاخیر انتخاب کنید.
برای فراخونی این تابع باید از تابع StartCoroutine استفاده کنید مثال :
void Start()
{
StartCoroutine(Test());
}
🆔 @Unity_Technologies#اسکریپت دریافت اطلاعات تاچ هایی که صورت گرفته شده در #یونیتی
دوستان در کلاس Input تابعی به نام GetTouch هست که بهش index میدید مثلا 0 و صفرمین تاچی ک شده رو بهتون میده 0 توی ارایه همون 1 خودمون هست.
حالا این تابع GetTouch میاد کلاس Touch بر میگردودنه و متغیری به اسم phase داره این متغیر enum هستش و 5 مقدار Began , Moved , Ended , Stationary , Canceled داره که دو تا آخری زیاد استفاده نمیشه و 3 تا مقداری که زیاد استفاده میشه این ها هستن و کارشون هم مشخصه :
Began :
🆔 @Unity_Technologies
دوستان در کلاس Input تابعی به نام GetTouch هست که بهش index میدید مثلا 0 و صفرمین تاچی ک شده رو بهتون میده 0 توی ارایه همون 1 خودمون هست.
Touch touch = Input.GetTouch(TOUCH_INDEX)
;حالا این تابع GetTouch میاد کلاس Touch بر میگردودنه و متغیری به اسم phase داره این متغیر enum هستش و 5 مقدار Began , Moved , Ended , Stationary , Canceled داره که دو تا آخری زیاد استفاده نمیشه و 3 تا مقداری که زیاد استفاده میشه این ها هستن و کارشون هم مشخصه :
Began :
if (touch.phase == TouchPhase.Began)
{
Debug.Log("Started - " + touch.position);
}
Moved :if (touch.phase == TouchPhase.Moved)
{
Debug.Log("Moved - " + touch.position);
}
Ended :if (touch.phase == TouchPhase.Ended)
{
Debug.Log("Ended - " + touch.position);
}
اولین شرط موقعی اجرا میشه که تاچ شروع شده باشه و دومی موقعی که حرکت میکنه و سومی موقعی که تموم و برداشته میشه با استفاده از این تابع GetTouch میتونید تاچ هارو بگیرید و کلی کار های جالبی برای بازیتون پیاده سازی کنید با تاچ مثل زوم و حرکت دوربین با تاچ و درگ و..🆔 @Unity_Technologies
#اسکریپت حرکت با محور مجازی در #یونیتی
کلاس Input تابعی به نام GetAxis داره که باهاش میتونید از قسمت Input Manager بیاید و Axes هارو ازش بگیرید مثل Mouse X یا Horizontal و.. که اگه به پنجره ی Project Settings / Input Manager / Axes برید همه ی این Axes ها اونجا هستن و میتونید تغییر بدید و اضافه کنید.
حالا ما Axes های Horizontal, Vertical رو میگیریم که Horizontal موقعی مقدار دهی میشن که کلید های a , d , left , right یک یا چند تاشون فشار داده بشه و Vertical هم w, d , up , down مقدارشون هم از -1 تا 1 هستش که در vertical اگر کلید بالا یا w فشرده بشه مقدار به 1 میرسه و اگر کلید پایین یا s فشرده بشه مقدار به -1 میرسه و horizontal هم a و چپ فشرده بشه مقدار -1 و d و راست هم مقدار به 1 میرسه حالا ما با استفاده از این مقدار ها میایم و پلیر و ابجکتمون رو با استفاده از ترنسرم حرکت میدیم.
برای حرکت دادن با ترنسفرم از تابع Translate از کلاس ترنسفرم استفاده میکنیم:
vertical به معنی عمودی هست اینجا سوال پیش میاد که چرا میدیمش به محور z ؟
چون وقتی ما کلید های w و s رو فشار میدیم باید پلیر به سمت عقب و جلو بره نه بالا و پایین
جهت y بالا و پایین هستش و حالا ممکنه بازی شما دوبعدی یا کلا فرق داشته باشه و بجای جلو و عقب رفتن بالا و پایین میره میتونید جاهاشون رو عوض کنید و هرطور که دوست دارید بنویسیدشون.
🆔 @Unity_Technologies
کلاس Input تابعی به نام GetAxis داره که باهاش میتونید از قسمت Input Manager بیاید و Axes هارو ازش بگیرید مثل Mouse X یا Horizontal و.. که اگه به پنجره ی Project Settings / Input Manager / Axes برید همه ی این Axes ها اونجا هستن و میتونید تغییر بدید و اضافه کنید.
حالا ما Axes های Horizontal, Vertical رو میگیریم که Horizontal موقعی مقدار دهی میشن که کلید های a , d , left , right یک یا چند تاشون فشار داده بشه و Vertical هم w, d , up , down مقدارشون هم از -1 تا 1 هستش که در vertical اگر کلید بالا یا w فشرده بشه مقدار به 1 میرسه و اگر کلید پایین یا s فشرده بشه مقدار به -1 میرسه و horizontal هم a و چپ فشرده بشه مقدار -1 و d و راست هم مقدار به 1 میرسه حالا ما با استفاده از این مقدار ها میایم و پلیر و ابجکتمون رو با استفاده از ترنسرم حرکت میدیم.
برای حرکت دادن با ترنسفرم از تابع Translate از کلاس ترنسفرم استفاده میکنیم:
transform.Translate(POSITION);
...myObject.transform.Translate(POSITION);
به این شکل و پارامتر یا ورودی های این تابع Vector3 و یا 3 متغیر عدد اعشاری x , y , z هستن.transform.Translate(0,1,0);
...myObject.transform.Translate(new Vector3 (0,1,0)));
...Vector3 pos = new Vector3 (0,1,0);
transform.Translate(pos);
حالا ما میایم و axes های horizontal و vertical رو میگیریم و میریزیم داخل متغیر عدد اعشاری :float horizontal = Input.GetAxis("Horizontal");
float vertical = Input.GetAxis("Vertical");
و در تابع ترنسلیت از این متغیر ها استفاده میکنیم و یک vector3 میسازیم ازش :transform.Translate (new Vector3 (horizontal, 0, vertical);
...myObject.transform.Translate (new Vector3 (horizontal, 0, vertical);
افقی یا همون horizontal رو میدیم به x و عمودی یا vertical رو میدیم به z.vertical به معنی عمودی هست اینجا سوال پیش میاد که چرا میدیمش به محور z ؟
چون وقتی ما کلید های w و s رو فشار میدیم باید پلیر به سمت عقب و جلو بره نه بالا و پایین
جهت y بالا و پایین هستش و حالا ممکنه بازی شما دوبعدی یا کلا فرق داشته باشه و بجای جلو و عقب رفتن بالا و پایین میره میتونید جاهاشون رو عوض کنید و هرطور که دوست دارید بنویسیدشون.
🆔 @Unity_Technologies
#اسکرپیت تبدیل string به enum
دوستانه کلاس Enum عین int و float و ... تابعی به نام Parse داره :
دوستانه کلاس Enum عین int و float و ... تابعی به نام Parse داره :
Enum.Parse(...);
که ورودی هاش یک Type و string و bool :public static object Parse (Type enumType, string value, bool ignoreCase);شما یک enum تعریف کردید به شکل زیر :
enum Animalحالا مثلا مقدار رو به صورت متنی داخل یک فایل ذخیره کردید مثلا اون مقدار Cat هست و حالا میخواید این و تبدیل کنید به enum میاید از تابع Parse کلاس Enum استفاده میکنیم و تبدیل به Animal میکنیم و میریزیم داخل متغیر برای مثال :
{
Cat,
Dog,
Parrot,
Turtle
}
Animal animal = (
Animal)Enum.Parse (typeof(
Animal),
"Cat");
تابع میاد به صورت object بر میگردونه پس حتما باید تبدیل به Animal شه و بخاطر همین قبل از فراخونی تابع Animal رو داخل پرانتز قرار دادیم تا تبدیل به این حالت بشه و بریزه داخل متغیر حالا ورودی این تابع یه تایپ همین Animal خودمون رو دادیم این پارامتر مهمه حتما باید بدید و دومین پارامتر هم متنمون که داخل فایل ذخیره کرده بودیم الان میاد مقدار Cat از Animal رو میریزه داخل متغیر به این صورت :Animal animal = Animal.Cat;
🆔 @Unity_Technologiesدانلود #یونیتی 2020 پرو کرک شده نسخه ی 2020.14f (64-bit) فشرده ZIP
حجم: 1.7 گیگابایت
دانلود رایگان
- https://xip.li/ckcRaV
🆔 @Unity_Technologies
حجم: 1.7 گیگابایت
دانلود رایگان
- https://xip.li/ckcRaV
🆔 @Unity_Technologies
Offline #Unity Documentation
Name: UnityDocumentation
Format: ZIP
Size: 300 MB
Download Link
https://storage.googleapis.com/docscloudstorage/2019.4/UnityDocumentation.zip
🆔 @Unity_Technologies
Name: UnityDocumentation
Format: ZIP
Size: 300 MB
Download Link
https://storage.googleapis.com/docscloudstorage/2019.4/UnityDocumentation.zip
🆔 @Unity_Technologies
Forwarded from ʜᴀᴅɪ ʜᴅ
بچه ها یه روش بهینه سازی کد اینه که مثلا شما تو تابع اپدیت یا هر تابع دیگه ای
مثلا کلی شرط دارین میخواین وقتی یکیش اجرا شد دیگه بقیه رو نه چک کنه نه اجرا واسه اینکه دیگه بقیه اجرا نشن از return; استفاده کنید اخر شرطتون بنویسید return;
مثلا :
if (Input.GetKeyDown(KeyCode.A))
{
//ok
return;
}
if (Input.GetKeyUp(KeyCode.A))
{
//ok
return;
}
حالا خب وقتی down بود دیگه up که نیازی نیست چک شه و کلا نه میخواد اجرا بشه نه چیزی پس بیخودیه چک کردنش و بخاطر همین اخر شرط down ریترن میکنیم که دیگه ادامه نده جلو نره
مثلا کلی شرط دارین میخواین وقتی یکیش اجرا شد دیگه بقیه رو نه چک کنه نه اجرا واسه اینکه دیگه بقیه اجرا نشن از return; استفاده کنید اخر شرطتون بنویسید return;
مثلا :
if (Input.GetKeyDown(KeyCode.A))
{
//ok
return;
}
if (Input.GetKeyUp(KeyCode.A))
{
//ok
return;
}
حالا خب وقتی down بود دیگه up که نیازی نیست چک شه و کلا نه میخواد اجرا بشه نه چیزی پس بیخودیه چک کردنش و بخاطر همین اخر شرط down ریترن میکنیم که دیگه ادامه نده جلو نره