شبیه سازی روبات ها با واقع گرایی بیشتر : موارد جدید در فیزیک برای Unity 2021.2 بتا
اطلاعات بیشتر در :
https://blog.unity.com/technology/simulate-robots-with-more-realism-whats-new-in-physics-for-unity-20212-beta
#یونیتی
👉 @UnityEngine3D 👈
اطلاعات بیشتر در :
https://blog.unity.com/technology/simulate-robots-with-more-realism-whats-new-in-physics-for-unity-20212-beta
#یونیتی
👉 @UnityEngine3D 👈
نکات یونیتی
اطلاعات بیشتر در :
https://blog.unity.com/community/unity-tips-for-productivity
#یونیتی #نکته
اطلاعات بیشتر در :
https://blog.unity.com/community/unity-tips-for-productivity
#یونیتی #نکته
دانلود یونیتی 2022.1.0a6 👇
🌐 http://beta.unity3d.com/download/6b941eb3ff22/download.html
#یونیتی
👉 @UnityEngine3D 👈
🌐 http://beta.unity3d.com/download/6b941eb3ff22/download.html
#یونیتی
👉 @UnityEngine3D 👈
سلام ، دوستان
برخی از دوستان پرسیدند که چطوری میشه کاری انجام داد که امضای بازی تغییر کرد اتفاقی مثل بیرون انداختن یا بالا نیومدن بازی انجام بشه
کد بالا نیومدن بازی یا خروج که فکر کنم
Application.Quit();
باشه
ولی خب چطوری امضا رو چک کنیم؟
من خودم خیلی وقت پیش این کار رو انجام دادم و تا اونجایی که یادمه برام کار کرد (این روش هایی که میگذارم احتمالا با روش من کمی متفاوت هست ، چون چک کردم دیدم که مال من تبدیلش میکنه به MD5 و...)
اول اینکه
https://www.slideshare.net/williamyang3910/unitekorea2013-protecting-your-android-content-21713675
برید این سایت رو چک کنید (یکمی اسلاید ها رو برید جلو به امضا میرسید) ، جدای از این ، این سایت به نظرم مطالب خوبی در مورد امنیت بازی گفته
دوم اگه براتون کار نکرد
https://programmerall.com/article/51711113111/
این رو هم چک کنید
اگه باز فایده نداشت
https://www.andnixsh.com/2018/02/fake-bug-bypass-x509-sha1-fingerprint.html?m=1
این رو هم چک کنید
(روش خودم) تا اونجایی که من یاد دارم ، یک متغیری بود که میخواست که hash امضا بازی رو بگذارم توش ، من این hash رو به وسیله همون کد به دست آوردم (توی خروجی اندروید) و بعدش که hash امضا بازیم رو برداشتم ، توی کد این hash رو با امضای خود بازی چک کردم که اگه مثل هم نبود از بازی مثلا خارج بشه یا...
#یونیتی #امنیت #آموزش
👉 @UnityEngine3D 👈
برخی از دوستان پرسیدند که چطوری میشه کاری انجام داد که امضای بازی تغییر کرد اتفاقی مثل بیرون انداختن یا بالا نیومدن بازی انجام بشه
کد بالا نیومدن بازی یا خروج که فکر کنم
Application.Quit();
باشه
ولی خب چطوری امضا رو چک کنیم؟
من خودم خیلی وقت پیش این کار رو انجام دادم و تا اونجایی که یادمه برام کار کرد (این روش هایی که میگذارم احتمالا با روش من کمی متفاوت هست ، چون چک کردم دیدم که مال من تبدیلش میکنه به MD5 و...)
اول اینکه
https://www.slideshare.net/williamyang3910/unitekorea2013-protecting-your-android-content-21713675
برید این سایت رو چک کنید (یکمی اسلاید ها رو برید جلو به امضا میرسید) ، جدای از این ، این سایت به نظرم مطالب خوبی در مورد امنیت بازی گفته
دوم اگه براتون کار نکرد
https://programmerall.com/article/51711113111/
این رو هم چک کنید
اگه باز فایده نداشت
https://www.andnixsh.com/2018/02/fake-bug-bypass-x509-sha1-fingerprint.html?m=1
این رو هم چک کنید
(روش خودم) تا اونجایی که من یاد دارم ، یک متغیری بود که میخواست که hash امضا بازی رو بگذارم توش ، من این hash رو به وسیله همون کد به دست آوردم (توی خروجی اندروید) و بعدش که hash امضا بازیم رو برداشتم ، توی کد این hash رو با امضای خود بازی چک کردم که اگه مثل هم نبود از بازی مثلا خارج بشه یا...
#یونیتی #امنیت #آموزش
👉 @UnityEngine3D 👈
SlideShare
[UniteKorea2013] Protecting your Android content
[UniteKorea2013] Protecting your Android content - Download as a PDF or view online for free
کانال تخصصی یونیتی ( آموزش و نکته )
سلام ، دوستان برخی از دوستان پرسیدند که چطوری میشه کاری انجام داد که امضای بازی تغییر کرد اتفاقی مثل بیرون انداختن یا بالا نیومدن بازی انجام بشه کد بالا نیومدن بازی یا خروج که فکر کنم Application.Quit(); باشه ولی خب چطوری امضا رو چک کنیم؟ من خودم خیلی…
توجه کنید که ممکن هست (دارم میگم ممکن هست ، یعنی مطمئن نیستم و دقیق هم نمیدونم) ، شاید کدی که بدست میاد یا... اگه دست هکر بیفته شاید خطر داشته باشه ، پس با آگاهی برید توی کارش و مسئولیت عواقب بدش هم به عهده من نیست ، و اگه خواستید ازش استفاده کنید محض اطمینان به یکی از الگوریتم های غیر قابل بازگشت تبدیلش کنید
(کسی نظری داشت کامنت بده)
(کسی نظری داشت کامنت بده)
کانال چطوره؟
Anonymous Poll
19%
افتضاح
1%
بد
15%
متوسط
20%
خوب
26%
خیلی عالی
19%
نظری ندارم (دیدن نتایج)
تا ۱ آذر نکته ها زمانگذاری شدن فعلا ، هر روز ۱ نکته ساعت ۱۴:۱۴ براتون میاد
This media is not supported in your browser
VIEW IN TELEGRAM
سلام دوستان
بلاخره موفق شدم یک چیز با JobSystem بزنم که فریم خوب بده
(حدود 10000 تا سیاره مثلا دارن دور خورشید میچرخن)
(هر آموزشی هم یک سازی میزد😑)
بلاخره موفق شدم یک چیز با JobSystem بزنم که فریم خوب بده
(حدود 10000 تا سیاره مثلا دارن دور خورشید میچرخن)
(هر آموزشی هم یک سازی میزد😑)
سلام دوستان از اونجایی که میدونید دارم آموزش 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 👈
موضوع : نگاه کلی به 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