کانال تخصصی یونیتی ( آموزش و نکته )
1.76K subscribers
549 photos
146 videos
51 files
251 links
به نام خدا

مسئولیت مطالب یا آگهی ارسالی در کانال یا کامنت ها به عهده من یا ما نیست

لیست گروه ها و...
https://t.me/UnityEngine3D/823

برای تبلیغ در کانال و گروه :
https://t.me/UnityEngine3DAds

مدیر اصلی(مالک)
@UnityEngine
Download Telegram
5-What is DOTS doing ?

(ECS = ENTITY COMPONENT SYSTEM)

#ecs #dots

CHANNEL : @UnityEngine3D
This media is not supported in your browser
VIEW IN TELEGRAM
پروژه Tiny ( قدرت گرفته شده از DOTS ) مخصوص بازی های خیلی کوچیک و کم حجم

اطلاعات بیشتر در :

🌐 https://unity.com/solutions/instant-games

🌐 https://docs.google.com/document/d/1A8hen2hLFY5FLkC5gd3JP2Z-IpHfnAX-CpYLK3aOdwA/edit



مثال های پروژه بازی های ساخته شده توسط Tiny در گیت هاب :
https://github.com/Unity-Technologies/ProjectTinySamples

یک بازی ماشینی ساخته شده بر بستر وب توسط همین پروژه (خیلی باحاله این ، روی وب و بازی ماشینی سه بعدی😅) :
https://tiny.vision/demos/TinyRacing

#یونیتی #ویژه #DOTS

👉 @UnityEngine3D 👈
سلام دوستان از اونجایی که میدونید دارم آموزش DOTS میبینم ، گفتم هر وقت دوست داشتم بیام و در مورد برخی چیز ها توضیح بدم (اگه جایی رو اشتباه توضیح دادم ، کامنت بدید)

موضوع : نگاه کلی به ECS و DOTS



DOTS = Data oriented technology stack

داتس (DOTS) یک تکنولوژی یا یک معماری هست که ما با اون میتونیم بازیمون رو بهینه کنیم
بیشتر برای بازی هایی با تعداد آبجکت بالا به کار میره

داتس از ۳ قسمت تشکیل شده
1-ECS
که یک شیوه کد نویسی داده محور هست که باعث قرار گیری منظم داده ها در RAM میشه و سرعت بازی بالا میره

2-JobSystem
که با اون میتونیم اجرا شدن کد هامون رو به جای استفاده از main thread (رشته اصلی) اون رو multi thread (چند رشته ای) کنیم که وظایف یا همون job هامون تقسیم بشن و سرعت کار افزایش پیدا کنه

3- Burst Compiler
یک کامپایلر هست که بایت کد های IL/.NET رو با استفاده از LLVM به کد های بسیار بهینه شده تبدیل میکنه

خب ECS چیست؟
ECS = Entity Component System

( کاری فعلا به Component و System نداشته باشید)

توی یونیتی دو جور چیز داره
یکی آبجکت هست که شما بهش اسکریپت میدید (کلاس MonoBehavior) و یکی Entity ، این Entity شاید تقریباً مثل آبجکت باشه ولی خب تفاوت داره ، مثلا توی Hierarchy دیگه نمیتونی Entity ها رو ببینی و باید از طریق EntityDebugger کامپوننت هاش یا ... رو ببینی

توضیح قرار گیری Entity ها در RAM :

اگه به فرض چند تا گیم آبجکت با چند تا کامپوننت ایجاد کنی این ها به صورت نامنظم توی رم قرار میگیرن و تا یونیتی بیاد این ها رو از جا های مختلف برداره و پردازش کنه و... طول میکشه

ولی Entity به صورت منظم داخل RAM قرار میگیره و با مقادیر اختصاصی و کوچکتر ، در نتیجه کنترل روی RAM راحت تر میشه و سرعت میره بالا

به طور مثال ، کامپوننت Transform یک آبجکت با همون کامپوننت در Entity فرق داره ،
مثلا همین کامپوننت Transform شامل مختصات ، چرخش و اندازه هست ولی داخل Entity به چند بخش تقسیم شده و هر کدوم شدن یک کامپوننت تا فضای کمتری رو داخل رم بگیره

در Entity :
Translation = برای مختصات
Rotation = برای چرخش
NonuniformScale =
برای اندازه های (scale) مخالف عدد یک

(هر کدوم از این ها یک کامپوننت محسوب می‌شوند)

فرض کنید یک Entity داریم که چند کامپوننت داره ، Rotation ، Translation و RenderMesh (اولی برای مختصات ، دومی برای چرخش و سومی برای رندر شدن (یه چیز توی مایه های Mesh Renderer حالت عادی))

حالا اگه ما هزار تا Entity داشته باشیم که دقیق همین کامپوننت ها رو داشته باشن (نه کمتر و نه زیاد تر) و حتی اگه مقادیرشون هم متفاوت باشه (مثلا مختصات متفاوتی داشته باشند) میشن یک Archetype
ولی اگه یک کامپوننت NonuniformScale به یکی از این Entity ها اضافه شد این Entity یک Archetype جدید تشکیل میده

مثلا اولی میشه
Archetype (A)
(شامل ۹۹۹ Entity)



و دومی میشه
Archetype (B)

(شامل ۱ Entity)




#یونیتی #ecs
#dots
#آموزش #فارسی

👉 @UnityEngine3D 👈
👍1
سلام دوستان
توی این قسمت میخوایم بریم سراغ وارد کردن پکیج های مورد نیاز برای DOTS
اول اینکه نسخه ای که من الان استفاده میکنم 2022.1.0a3 هست و شما هم سعی کنید از نسخه های جدید یونیتی برای این آموزش استفاده کنید تا به مشکلی بر نخورید

موضوع : وارد کردن پکیج های مورد نیاز DOTS


اول اینکه وارد پکیج منیجر بشید و روی تنظیمات بالا (علامت چرخ دنده) کلیک کنید و روی گزینه Advanced Project Settings کلیک کنید تا وارد قسمت تنظیمات پکیج منیجر بشید . گزینه Enable Pre-realse Packages رو فعال کنید و برگردید به پکیج منیجر و اینترنت خودتون و فیلترشکن رو روشن کنید ( ترجیحا یک بار پکیج منیجر رو ببندید و دوباره بازکنید و روی Refresh کلیک کنید ) چهار تا پکیج Jobs و Entities و Hybrid Renderer و Burst رو فعال کنید .
البته نسخه ای که من استفاده میکنم Burst رو به صورت پیش فرض داره و حذف هم نمیشه
اگر این چهار تا رو پیدا نکردید روی گزینه + بالای پکیج منیجر کلیک کنید و گزینه Add git from URL... رو بزنید و
com.unity.entities
com.unity.jobs
com.unity.rendering.hybrid
com.unity.burst
و ADD رو بزنید و بعد از وارد شدن هر پکیج ، بعدی رو بگذارید ADD رو بزنید

#یونیتی #ecs
#dots
#آموزش #فارسی

(قسمت های بعدی انشاءالله به زودی)


👉 @UnityEngine3D 👈
(دو پست قبل در مورد سیستم قدیمی یونیتی حرف زدم و پست قبلی مربوط به JobSystem هست)

خب دوستان این آموزش هم تموم شد ولی خب یک چالش بگذارم برای اینکه یادبگیرید

چالش هم اینه که بعد از اتمام این کار ها به جای تغییر مختصات محور z شما rotation آبجکت رو حول محور y تغییر بدید یا اگه میتونید کارای خفن تر انجام بدید
نتیجه رو به صورت اسکریپت یا فیلم یا... کامنت بدید
(توجه کنید که چالش جایزه نداره)

#یونیتی #JobSystem
#dots
#آموزش #فارسی
👉 @UnityEngine3D 👈
با استفاده از کامپوننت Physics Debug Display و تبدیل اون به Entity میتونید کلایدر های Entity ها رو هنگام اجرای بازی به این صورت ببینید (تیک Gizmo هم یادتون باشه فعال باشه)
(تصویر دوم ، داخل پنجره Scene میتونید نتیجه رو مشاهده کنید)
(DOTS)

#نکته #یونیتی #dots

👉 @UnityEngine3D 👈
آموزش ساخت بازی دونفره AR با DOTS


لینک :
https://dots-tutorial.moetsi.com/


#یونیتی #dots #آموزش #AR


👉 @UnityEngine3D 👈
دوستان خواستید با Unity Physics کار کنید ، یادتون باشه موقعی که میخواید برخورد رو تشخیص بدید ، اون آبجکتی که میخواد برخورد رو تشخیص بده ، توی کامپوننت Physics Shape حتما Collision Response روی Collide Raise Collision Events باشه (یا یه همچین گزینه ای اگه نبود) و مثل من دو ساعت نگردید برای عیب یابی توی کد ها😐❤️

(DOTS)


#نکته #یونیتی #dots


👉 @UnityEngine3D 👈
👍1
دوستان دارم روی پروژه Mega City که قبلا با نسخه بتای ۲۰۱۹ نوشتنش رو ، توی یونیتی 2021.2 مشکل هاش رو درست میکنم
انشاءالله درست بشه عجب چیزی میشه

این پروژه با DOTS نوشته شده و حجم پروژه برای دانلود هم حدود ۷ گیگ و خورده ای هست

اطلاعات بیشتر و دانلود پروژه در :
https://unity.com/megacity



#یونیتی #dots
This media is not supported in your browser
VIEW IN TELEGRAM
سلام دوستان
نتیجه آموزش فیزیک DOTS که دیدم این شد

وقتی تیر ها به اردک ها میخورن ، اردک ها حذف میشن (CollisionEvent)

وقتی هم که بازیکن یا... می‌ره داخل اون مکعب ، 1000 واحد نیرو به سمت محور z به اون بازیکن یا... وارد میشه (TriggerEvent)

فیزیک با Havok هست و تعداد اردک های ایجاد شده در اول بازی ۲۰۰۰ تا هست

و موقع حرکت این دوربین لگ میزنه😑🤷‍♂


#dots
case-study-dots-runs-futuristic-megacity-on-mobile.pdf
211.7 KB
کتاب DOTS ، مگاسیتی آینده نگر را روی تلفن همراه اجرا میکند از شرکت یونیتی به زبان انگلیسی



#یونیتی #کتاب #آموزش #dots



👉 @UnityEngine3D 👈
1
case_study_dot_speeds_up_mobile_games_and_development.pdf
101.5 KB
کتاب DOTS سرعت بازی های موبایل و توسعه را افزایش می دهد از شرکت یونیتی به زبان انگلیسی



#یونیتی #کتاب #آموزش #dots



👉 @UnityEngine3D 👈
نسخه 0.50 ، Entities اومد


اطلاعات بیشتر در :
https://forum.unity.com/threads/experimental-entities-0-50-is-available.1253394/



نقشه راه DOTS :
https://unity.com/roadmap/unity-platform/dots



توضیحاتی در مورد این خبر از کانال یوتیوب Turbo Makes Games :
https://youtu.be/qUccc1K5pDI


#یونیتی #dots

👉 @UnityEngine3D 👈
🔥2