آموزش بازیسازی و برنامه نویسی | سجاد احمدی نیت
#اسکریپت 📦اسکریپت Parallax در یونیتی این اسکریپت به شکل حرفه ای پارالاکس و اختلاف منظر رو براتون پیا
مراحل استفاده از اسکریپت پارالاکس:
اسکریپت را روی یک GameObject که دارای کامپوننت Renderer باشد(مثل SpriteRenderer یا MeshRenderer) قرار دهید. این GameObject معمولاً یک Sprite (بکگراند، ابر، کوه، درخت) است.
توضیح متغیرها:
متغیر followTarget : این متغیر مشخص میکند که پارالاکس نسبت به حرکت کدام Transform انجام شود. معمولاً همان Transform دوربین اصلی است. اگر خالی بگذارید، اسکریپت خودش Camera.main.transform را پیدا میکند.
متغیر parallaxFactor : یک مقدار Vector2 است که میزان تأثیر حرکت را در هر محور مشخص میکند. مثال: (0.2, 0.2) یعنی اگر دوربین 1 واحد حرکت کند، این آبجکت فقط 0.2 واحد حرکت کند (حس عمق بیشتر، لایه دورتر). (1, 0) یعنی فقط افقی هماهنگ با دوربین حرکت کند، عمودی هیچ. مقادیر منفی باعث حرکت در خلاف جهت دوربین میشود.
دو متغیر infiniteHorizontal و infiniteVertical : که برای تکرار عمودی و افقی هستند. برای اینکه کار کند، دو شرط لازم است: GameObject حتماً Renderer داشته باشد(همان اسپرایت یا مدل). همچنین، تکسچر شما باید tileable (قابلیت تکراری شونده) باشد، یعنی دو طرف تصویر به هم بچسبند.
متغیر textureSize : اسکریپت وقتی infiniteHorizontal یا infiniteVertical فعال است، در Start() سایز واقعی باندهای آبجکت را میخواند و در textureSize قرار میدهد. اگر textureSize برابر Vector2.one (پیشفرض) بماند، خودکار سایز را از bounds آبجکت میگیرد. در موارد خاص (مثل Sprite با مقیاس تغییر کرده) میتوانید دستی textureSize را به اندازه دلخواه (مثلاً عرض تصویر در واحدهای جهانی) تنظیم کنید.
🎮 @SajadAhmadiNiat 🪔
#انتقال_تجربه
🟥 توی یکی از پروژه های یونیتی، به یکی از مشکلات جالب برخوردم که قبلا هم بهش برخورد کرده بودم و تقریبا هرکسی که بازیسازی مبتنی بر فیزیک کار کرده، به این مشکل برخورده. اون هم برخورد دوتا آبجکت به همدیگه ست که ممکنه دوبار به حساب بیاد.
مثلا شما در کد نوشتی:
using UnityEngine;
public class DeadZone : MonoBehaviour
{
private void OnTriggerEnter2D(Collider2D other)
{
if (other.CompareTag("Player"))
{
PlayerHealth playerHealth = other.GetComponent<PlayerHealth>();
if (playerHealth != null)
{
playerHealth.TakeDamage(1);
}
}
}
}
و هرچی فکرمیکنی میگی خدایا، من توی کُد از TakeDamage(1) دوبار استفاده نکردم و جای دیگه رو هم چک کردم. پس چرا دوبار تیر خورده رو حساب میکنه؟ یعنی دوتا قلب کم میشه؟
مشکل تعداد collider های اشیاء هست که is trigger دارن. مثلا اگر بازیکن(شیء با تگ Player) بیش از یک کولایدر دوبعدی داشته باشه(مثلاً یک کپسول کولایدر برای بدن و یک کولایدر اضافی برای تشخیص زمین یا هر چیز دیگه)، همهی اون کولایدرها به عنوان فرزندان همون شیء(با تگ Player) شناخته میشن و ورود هر کدام به تریگر DeadZone یک OnTriggerEnter2D جداگانه صدا میزنه.
راهکار؟
1. مدیریت اون کلایدرهای is trigger شده. یعنی بصورت فیزیکی مدیریت کنیم که کلایدرها چگونه باشند.
2. ایجاد یک تایمر بی آسیبی. تایمر بی آسیبی ولو شده در حد 0.5 ثانیه، باعث میشه که جلوگیری بشه از آسیبی که پشت سرهم داره وارد میشه.
3. گرفتن برخوردها و لحاظ کردن برخورد اول با GetContact.
🎮 @SajadAhmadiNiat 🪔
🖤 تاسوعا ..
🥀 آغاز عطشناک نهضت حسینی است
🖤 و خط سرخ عاشورا
🥀 باواژه های تاسوعا بہ حقیقت پیوست
🖤 تاسوعای حسینی
🥀 تسلیت باد🏴
#التماس_دعا
https://www.daneshjooyar.com/landing/moharram-1405/?gold_cat=game&scroll_to=golden-section
سه تا از دوره های آموزشی، در نذری محرم "سوگ علمدار" دانشجویار رایگان شده.
میتونید از اونها استفاده کنید.
آخرین حوزه های صنایع خلاق طبق معاونت علمی ریاست جمهوری این دسته بندی ها هست. اگر قصد ثبت شرکت خلاق برای حوزه های بازیسازی و انیمیشن و ... دارید، میتونید در این حوزه ها فعالیت داشته باشید. ولی معمولا شرکت های خلاق تک حوزه ای یا میان حوزه ای هستند.
https://regcreative.ir/static-page/st/dXBjWWhOSk1TbDNIRFZXT0FNQ2dPZz09
شیوهنامه دریافت گواهی شرکت خلاق
🎮 @SajadAhmadiNiat 🪔
#اینفوگرافی
⁉️چگونگی مهندسی معکوس پروژه های بازیسازی ساخته شده با یونیتی
🎮 @SajadAhmadiNiat 🪔
هدایت شده از 🎮 علم بازی | Game Science 📚
🔁 مهندسی معکوس و بومیسازی بازیهای یونیتی
در دنیای پویا و شتابان فناوری و صنعت امروز، دستیابی به دانش فنی و درک عمیق از ساختار محصولات پیچیده، یکی از کلیدهای اصلی موفقیت و بقا در بازار رقابتی است. در این میان، فرایندی به نام مهندسی معکوس(Reverse Engineering) به عنوان یکی از کارآمدترین و حیاتیترین ابزارها برای رمزگشایی از فناوریهای موجود و توسعه آنها شناخته میشود.
مهندسی معکوس به زبان ساده، فرآیند واکاوی و متلاشی کردن یک محصول، قطعه فیزیکی یا سیستم نرمافزاری به منظور پی بردن به نحوه کارکرد، ساختار، فرمولها و جزئیات طراحی آن است. برخلاف مهندسی سنتی (مستقیم) که با یک ایده و نقشه اولیه آغاز شده و به محصول نهایی ختم میشود، در مهندسی معکوس مسیر به صورت برعکس طی میشود؛ یعنی کارشناسان با داشتن محصول نهایی، تلاش میکنند تا به دانش فنی، نقشههای طراحی و اصول اولیه ساخت آن دست یابند.
اما چرا صنایع، پژوهشگران و سازمانها به سراغ این روش میروند؟ ...
ادامه این مطلب در علم بازی 👇
https://gamescience.ir/how-reverse-engineering/
حتما نظرت رو درموردش بنویس و اگر چیزی بیشتر میدونی هم بهش اضافه کن 🙌
{#دانلود , #میرور , #mirror , #توسعه_بازی , #برنامه نویسی , #مقاله}
🧩 علم بازی| بازیسازی به شکل اصولی و علمی (@Gamescience_Official)
آموزش بازیسازی و برنامه نویسی | سجاد احمدی نیت
🔁 مهندسی معکوس و بومیسازی بازیهای یونیتی در دنیای پویا و شتابان فناوری و صنعت امروز، دستیابی به د
من باب موضوع مهندسی معکوس، این مقاله رو هم در علم بازی نوشتم.
2.9M حجم رسانه بالاست
مشاهده در ایتا
اللّهم انّا نا نعلمُ منهُ الّا خَیرا 🥀💚
خدایا، ما جز خوبی از او ندیدیم ...
خداحافظ آقای من ✋💔
خداحافظ همه امید و آرزوی ما، دیدار ما روز قیامت به امید شفاعت او که امید تو بود، و امید ما برای شفاعت تو 🖤 ...
با تنی خسته، ولی روحیه ای قویتر، راهت را ادامه میدهیم 🙏
🎮 @SajadAhmadiNiat 🪔
تلفن ابری چیه که اخیرا مُد شده و به چه درد کسب و کار ما میخوره؟ 📞🥸
تلفن ابری یا Cloud Phone System / Cloud PBX / VoIP ابری یک سیستم تلفنی سازمانی است که بهجای اینکه دستگاه سانترال و تجهیزات اصلیاش داخل شرکت شما نصب بشه روی سرورهای اینترنتی ارائهدهنده سرویس اجرا میشه.
یعنی بهجای اینکه برای پاسخگویی، داخلیها، صف تماس، ضبط مکالمه و گزارشگیری یک سانترال فیزیکی در محل داشته باشید، همه اینها از طریق فضای ابری مدیریت میشه.
تلفن ابری، تماسها رو بین افراد تقسیم میکنه، به هر نفر یک کد داخلی میده، تماسها رو روی موبایل یا لپتاپ میاره، ضبط مکالمه انجام میده، صف تماس میسازه و ...
همه اینها بصورت غیرمستقیم و غیرحضوری و هوشمند انجام میشه 😃
ولی هزینه هاش کم نیست. پس اگه برای شما میصرفه، قطعا به سراغش برید که تکنولوژی خوبیه 👌🏻
🎮 @SajadAhmadiNiat 🪔