<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های امیرحسین دورودیان</title>
        <link>https://virgool.io/feed/@ahdourodian</link>
        <description>اسمم امیر حسینه. در زمینه برنامه نویسی Android کار می کنم و به دنبال یادگیری بازی سازی هستم.</description>
        <language>fa</language>
        <pubDate>2026-06-17 03:13:04</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/159822/avatar/R02QhF.png?height=120&amp;width=120</url>
            <title>امیرحسین دورودیان</title>
            <link>https://virgool.io/@ahdourodian</link>
        </image>

                    <item>
                <title>آشنایی با برخی از Component های کاربردی یونیتی - قسمت سوم</title>
                <link>https://virgool.io/apieco/unity-component-part-three-ta3vi5ronufx</link>
                <description>در این پست می خوایم در ادامه پست قبل با یک سری از Component های کاربردی یونیتی آشنا بشیم.کامپوننتی که می خوایم دربارش صحبت کنیم، Collider نام داره. وظیفه این کامپوننت مدیریت برخورد بین دو یا چند gameObject رو بر عهده دارد. به طور مثال اگر بخواهیم برخورد تیر به بازیکن رو مدیریت کنیم (کم کردن جون بازیکن و سایر افکت ها) از Collider استفاده می کنیم. این کامپوننت اشکال مختلفی مدیریت بهتر برخورد بین اشکال مختلف دو بعدی و سه بعدی دارد (کره - مکعب - مربع - استوانه (کپسول) و ....)، که ما چند تا از اشکال مختلف اون رو توضیح می دهیم.باکس کولایدر دوبعدی (Box Collider 2D) برای اشکال 4 ضلعی دو بعدیباکس کولایدر (Box Collider) برای اشکال 4 ضلعی سه بعدی
کپسول کلایدر (Capsule Collider) برای اشکال استوانه ای یا کپسول شکل (در برخی از بازی های اول شخص (First Person) مدل بازیکن به شکل کپسول می باشد.)سرکل کلایدر دو بعدی(Circle Collider 2D) برای اسکال بیضی یا دایره شکلسفیِر کلایدر (Sphere Collider) برای اشکال کُره ای شکلهمونطور که مشاهده می کنید در بین این کلایدر ها یک سری فیلد یا خصوصیت مشابه وجود دارد و میشه گفت تنها فرق اساسی بین این کامپوننت ها شکل اونهاست.- گزینه Edit Collider به شما این اجازه رو میده تا بتونین ابعاد کلایدر خود را با ابعاد شی اصلی تنطیم کنید.- گزینه IsTrigger برای فعال / غیر فعال کردن ثبت برخورد یک RigidBody هست که به این معناست که زمانی که یک gameObject که دارای RigidBody هست با این شی برخورد کرد آیا متد های OnTriggerEnter, OnTriggerExit و OnTriggerStay به اصطلاح Call شود یا خیر.- گزینه Material برای انتخاب فیزیک متریال (Physic Material) برای کلایدر است. (Physic Material برای تعیین میزان اصطحلاک و اثر bounce یا پرش بعد از ایجاد برخورد است)اخرین موضوعی که می خوایم دربارش صحبت کنیم گزینه NewScript هست که در انتهای لیست گزینه Add Component قرار داره. با انتخاب این گزینه unity به طور خودکار یک فایل با پسوند .cs ایجاد می کند.بعد از انتخاب گزینه newScript پنجره بالا باز می شود. بعد از وارد کردن نام مورد نظر برای کامپوننت گزینه Create and Add رو انتخاب می کنیم.شما می توانید با استفاده از برنامه Visual Studio این فایل را که به زبان #C هست را ویرایش کرده و به عنوان یک کامپوننت به gameObject خود اضافه کنید.محیط Visual Studio و یک اسکریپت تازه ایجاد شده توسط Unityهمونطور که توی عکس بالا می بینید یک کلاس به نامی که شما انتخاب می کنید ایجاد می شود و این کلاس دارای 2 متد به نام های Start و Update هست. متد Start زمانی که کد به طور خودکار اجرا می شود صدا زده می شود و محتوای آن اجرا می شود. از این متد اصولا برای آماده سازی فیلد ها و چیز هایی که در زمان اجرا کد به آن نیاز دارد استفاده می شود. متد بعدی متد Update هست که این متد بعد از اتمام کار متد Start ، در هر فریم یا لحظه صدا زده می شود. در این متد تمامی کار هایی که لازم است در هر لحظه تغییر یا بررسی شود قرار داره می شود.</description>
                <category>امیرحسین دورودیان</category>
                <author>امیرحسین دورودیان</author>
                <pubDate>Fri, 10 Apr 2020 19:39:32 +0430</pubDate>
            </item>
                    <item>
                <title>آشنایی با برخی از Component های کاربردی یونیتی - قسمت دوم</title>
                <link>https://virgool.io/@ahdourodian/unity-component-part-two-fmcgpvmdjjtc</link>
                <description>در این پست می خوایم در ادامه پست قبل با یک سری از Component های کاربردی یونیتی آشنا بشیم.کامپوننتی که می خوایم دربارش صحبت کنیم، Sprite Renderer نام داره. این کامپوننت وظیفه پردازش و نمایش ظاهر و ابعاد GameObject مارو برعهده داره. این کامپوننت تقریبا در همه GameObject ها به طور پیش فرض وجود داره.همونطور که در عکس بالا مشاهده می کنید دارای چند گزینه هست که میخوایم درباره اون ها صحبت کنیم.اولین اون ها گزینه Sprite هستش که با کلیک بر روی دایره سمت راست این گزینه می تونید ظاهر اون رو انتخاب کنید. با انتخاب این گزینه یه صفحه باز میشه که در اون صقحه می تونید از بین عکس هایی که به صورت Asset به فایل های پروژه اضافه کردید انتخاب کنید. البته در انتهای این گزینه ها، یک سری گزینه به صورت پیش فرض وجود دارن که در عکس زیر مشاهده می کنید. (بخشی که با رنگ قرمز انتخاب شده، عکس هایی هستن که پروژه اضافه کردیم و بخشی که با رنگ آبی انتخاب شده، گزینه های پیش فرض Unity هستن)در بخش پایینی این صفحه هم اطلاعاتی از گزینه انتخاب شده مثل نام و سایز و آدرس این عکس قرار دارد.گزینه بعدی گزینه Color هست که در این بخش می توانید رنگ پیس زمینه این GameObject رو تغییر بدید. با انتخاب این گزینه صفحه ای باز می شود که به شما امکان انتخاب رنگ را می دهد.البته می تونید با انتخاب قطره چکان (Color Picker) کنار این گزینه رنگ خود را از روی صفحه انتخاب کنید.گزینه بعدی گزینه Flip هست که دارای دو زیر گزینه هست که با انتخاب اون می تونید عکس انتخابی Sprite Renderer خود را در جهت محور X یا Y (حتی هر دو) بچرخونید.گزینه بعدی گزینه Sorting Layer هست که در این گزینه می توانید لایه مورد نظر خود را برای GameObject رو انتخاب کنید.صحنه بازی (Scene) رو شما می تونید به لایه های مختلف تبدیل کنید. این کار باعث میشه که مثلا لایه ای که GameObject زمین در اون قرار داره روی GameObject بازیکن نیوفته.شما می تونید در بخش بالایی صفحه Inspector گزینه Layer رو انتخاب کنید و لایه GameObject مورد نظرتون رو انتخاب کنید و با لایه ای رو ایجاد کنید.صفحه افزودن لایهکامپوننت بعدی، RigidBody هست. این کامپوننت برای GameObject امکان واکنش به رویداد های فیزیکی رو ایجاد می کند، مانند: نیرو، گرانش، جرم، کشش، حرکت.با استفاده از گزینه Mass می توانید جرم GameObject را تغییر دهید.گزینه Drag برای ایجاد اصطحکاک می شود، هرچه مقدار آن افزایش پیدا کند، اصطحکاک بیشتر می شود.گزینه Angular Drag برای ایجاد اصطحکاک برای چرخش GameObject می شود، هرچه مقدار آن افزایش پیدا کند، اصطحکاک برای چرخش بیشتر می شود.گزینه useGravity برای تعیین استفاده از جاذبه برای GameObject است که اگر غیرفعال شود رفتار RigidBody مانند یک جسم در فضا تبدیل می شود.گزینه isKinematic برای تعیین اینکه ایا RigidBody از رویداد های فیزیکی اطراف خود پیروی می کند یا خیر. اگر فعال نباشد فقط رویداد های داخل GameObject روی RigidBody تاثیر خواهد داشت.در بخش Constraints می توان چرخش یا حرکت شی در محور X - Y - Z متصل به این RigidBody رو قفل یا Freeze کرد. به طور مثال اگر در گزینه Freeze Rotation گزینه Z رو انتخاب کنیم شی متصل به این RigidBody در محور Z نمی تواند بچرخد.</description>
                <category>امیرحسین دورودیان</category>
                <author>امیرحسین دورودیان</author>
                <pubDate>Sun, 05 Apr 2020 05:18:42 +0430</pubDate>
            </item>
                    <item>
                <title>آشنایی با برخی از Component های کاربردی یونیتی - قسمت اول</title>
                <link>https://virgool.io/@ahdourodian/unity-component-part-one-z2jswjv0xrmx</link>
                <description>در این پست می خوایم با یک سری از Component های کاربردی یونیتی آشنا بشیم. قبل از شروع، قصد دارم یک تعریف از Component رو بیان کنم.جز یا Component به بخش های جداگانه ای هستند که به شی مورد نظر متصل می شود و به آن شی عملکردی خاص ببخشد. به طور مثال اگر بخواهیم برای شی ما برخوردی رخ داد، متوجه آن شویم و بتوانیم نسبت به آن واکنش داشته باشیم یا بتوانیم برخی از ویژگی های شی مورد نظر دسترسی داشته باشیم یا اون رو تغییر دهیم. با جز به جز بودن بخش های مختلف شی می تونیم به راحتی اون رو کنترل و شخصی سازی کنیم.اولین Component که قراره دربارش صحبت کنیم Transform هست. این Component برای تنظیم سه مولفه مهم شی بازی یا (GameObject) به نام های Position - Rotation - Scale رو بر عهده دارد.موقعیت یا Position برای تنظیم مکان قرارگیری شی بازی رو مشخص می کند. شما می توانید موقعیت شی خود رو با وارد کردن 3 عدد در جهت محور X و Y و Z مشخص کنید.مولفه بعدی Rotation هست. با وارد کردن سه عدد می تونید از سه جهت X و Y و Z شی خود را بچرخونید. به طور پیشفرض این اعداد 0 هستند.مولفه آخر Scale یا مقیاس هست. می تونید ابعاد شی خود را در سه جهت X و Y و Z کم یا زیاد کنید.خب Component بعدی که می خوایم دربارش صحبت کنیم Camera هست. برای اینکه بتونید محیط بازی رو ببنید قطعا به این Component نیاز دارید!! این Component در هر صحنه یا (Scene) به طور خودکار ایجاد می شود (Main Camera) که وظیفه نمایش کلی صحنه را دارد. در یک سری مواقع خاص می تونید باز هم از این Compenent بسازید و در Scene خود استفاده کنید. در این پست برخی از فیلد های Camera رو دربارش صحبت می کنیم.با استفاده از گزینه BackGround می توانید رنگ پس زمینه دوربین خود را تغییر دهید.با استفاده از گزینه Culling Mask می توانید مشخص کنید که کدوم لایه های بازی توسط این دوربین نمایش داده شود.گزینه های مختلفی در این بخش وجود دارد که به شما در شخصی آن کمک می کند. به طور مثال می تونید گزینه Nothing رو انتخاب کنید تا در خروجی دوربین یک صفحه خالی نمایش دهد!</description>
                <category>امیرحسین دورودیان</category>
                <author>امیرحسین دورودیان</author>
                <pubDate>Tue, 31 Mar 2020 04:30:17 +0430</pubDate>
            </item>
                    <item>
                <title>آشنایی با محیط Unity</title>
                <link>https://virgool.io/@ahdourodian/unity-game-engine-introduce-apktexu69fhw</link>
                <description>یونیتی (Unity) یک موتور بازی سازی (Game Engine) چند سکویی (Cross Platform = یعنی با یک بار طراحی بازی در این موتور بازی سازی می توان خروجی های مختلفی (android - ios - windows و ...) گرفت.) است که توسط شرکت Unity Technologies ساخته شده. موتور بازی سازی همان چیزی است که به اجزای مختلف کامپیوتر نحوه پردازش تصویر و صدا و ... را می دهد. ساخت بازی با این موتور بازی سازی ساده است چون در بسیاری از جاها اجزای بازی و کدنویسی های آن به صورت آماده وجود دارد و نیاز به تحقیق برای فهم مفاهیم و بازنویسی آنان نیست. به زبان راحت تر بخش های سنگین و سخت بازی سازی (به طور مثال: بخش های بصری و فیزیک و مدلینگ و...) آن توسط شرکت سازنده انجام شده و در قالب اجزا یا Component در اختیار کاربر قرار داده شده. با استفاده از Unity شما می توانید به صورت دو بعدی یا سه بعدی و به زبان های #C و JavaScript بازی بسازید.یونیتی بهترین گزینه برای شروع فراگیری بازی سازی است چون امکانات کاربردی زیادی رو در قالب یک واسط گرافیکی در اختیار کاربران قرار داده ولی در عین حال یک موتور بازی سازی حرفه ای برای بازی سازی محسوب می شود.یونیتی به شما یک سری مدل های آماده برای طراحی بازی می دهد (مانند = مکعب - کره - plane و...) اما امکان ساخت مدل در محیط یونیتی وجود ندارد. اما می توان با برنامه های طراحی مدل مثل: Blender - 3D Max - Maya و ... طرح های خود را بسازید و خروجی آن را در یونیتی، بخش Asset(به یک سری منابع لازم برای بازی سازی که توسط کاربر در پروژه استفاده می شود. مثلا : صدا - مدل - عکس و ...) پروژه خود قرار دهید و از آن استفاده کنید. و البته یونیتی بخش Asset Store بزرگ نیز دارد که می توانید در آن مدل های خود را دانلود یا خریداری کنید.قابلیت های موتور بازی سازی یونیتی:ویرایشگر قدرتمند، انعطاف پذیر و با قابلیت اجرای دستورات کاربر بصورت ویژوالابزارهای مورد نیاز جهت کار گروهی، قابلیت ایمپورت مستقیم فایل های نرم افزارهایی مثل Max, Maya, XSI و آپدیت ذخایر در حین اجرای نرم افزار و ساخت بازیاستفاده از آخرین تکنولوژی های گرافیکی، سرعت رندر بالا، استفاده از تمامی قابلیت های DirectX و OpenGLتهیه خروجی اجرایی متناسب با پلتفرم در مراحل بسیار ساده.تهیه خروجی تحت وب، تحت کنسول، تحت آیفون و برای مکینتاشاستفاده از جدیدترین تکنیک های نور پردازی و پشتیبانی از سایه های دینامیکاستفاده از جدیدترین شیدرهای گرافیکی، کتابخانه کاملی از شیدرهای قابل استفاده، توانایی کاربر در نوشتن شیدرهای جدیدموتور Terrain داخلی، جهت ساخت عوارض زمین، محیط های وسیع Outdoor و کوه و تپه و امکانات تکسچر گذاری و رنگ آمیزی و چینش اتوماتیک اشیا در محیطپشتیبانی از پروتکل های شبکهپشتیبانی کامل از موتور فیزیک Physx محصول nVidiaپشتیبانی از زبانهای C# و جاوا اسکریپتو …جالب است که بدونید بازی های معروفی از شرکت های معروف با این موتور بازی سازی ساخته شده، مانند: Cuphead - Monument Valley 2 - Inside - Ori and the Blind Forest - Rust - Assassin Creed:Identity - Deus Ex: The Fall و ....شما می توانید نسخه رایگان یونیتی رو برای از این سایت دریافت کنید.در پست های بعد سعی می کنم تا درباره Component های یونیتی توضیح بدم.</description>
                <category>امیرحسین دورودیان</category>
                <author>امیرحسین دورودیان</author>
                <pubDate>Mon, 30 Mar 2020 03:32:26 +0430</pubDate>
            </item>
            </channel>
</rss>