درود مهمان گرامی! ثبت نام

ساخت بازی

امتیاز موضوع:
  • 6 رأی - میانگین امتیازات: 4.67
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
کلمات کلیدی
برنامه نویسی و راهکارهایی در یونیتی

برنامه نویسی و راهکارهایی در یونیتی
#1
بسیاری از آموزش های بنده پولی هستن ولی واسه پرومیکرز رایگان تقدیم می کنم.
==
در این تاپیک سعی می کنم مباحث جالبی که جمع آوری می کنم در قالب pdf و متن و تصویر تقدیم دوستان کنم.

با توجه به فقر علمی بسیاری از کاربران مبتدی در امر طراحی اسکریپت،سعی دارم قدرت بچه های مختلف رو بیارم بالا.

دوستان دیگه هم اگه میل داشتن حقه هاشونو میتونن در قالب PDF بذارن.
اگه تشکر خواستید کنید فقط دکمه ی تشکر رو بزنید و سوالات خودتون رو پ.خ کنید یا در بخش پرسش و پاسخ بذارید.

حقه ی ایجاد دیوار با استفاده از یک آجر

resim
http://s5.picofile.com/file/8151245626/divar.pdf.html
هرچند من گدای پست های مدرن شما نیستم ولی اگه استقبال بره بالا قول میدم تعداد آموزش های من هم بره بالا.
علت ملق زدن یا واژگونی ماشین در car controller ها

ضعف اصلی خیلی از برنامه نویسان اینه که زبان انگلیسی شون ضعیف هست.

هر ماشین نیاز به یک مرکز ثقل در زیرش داره که معمولا در نقطه ی وسط و کمی پایین تر از سطح لاستیک ها با استفاده از یک ابجکت empty اونو باید بسازید و اونقدر اونو جابجا کنید که دقیقا در مرکز ماشین قرار بگیره و چون اینکار از لحاظ تئوری کمی دشوار هست با آزمون و خطا ماشین رو تست کنید تا ماشین از عقب یا جلو یا پهلو ها تک چرخ نزنه.

در ساخت کنترلرهای ماشین و وسایل نقلیه معمولا با پارامترهای زیادی روبرو هستیم.

بعضی از این پارامتر های اصلی در کامپوننت wheel collider قرار داره که به تک تک چرخ ها نسبت میدیم:
resim

mass: (جرم یا وزن و سنگینی لاستیک) یکی از مهمترین پارامترهاست که اگه کم باشه لاستیک ها سنگینی لازم برای ایجاد تعادل ماشین رو نخواهند داشت. بقیه پارامترها رو خودتون ترجمه کنید سادست (مربوط به ترمز و اصطکاک پهلو ها و جلو و مسافت تعلیق میشه و ...)

radius: بهش عدد بدید و در صحنه نگاه کنید تا دقیقا دایره ای هم اندازه با لاستیک ایجاد بشه.(البته با scale خود گیم ابجکت های empty ای که واسه تکتک چرخ ها ساختید هم می تونید بازی کنید. rotation هم واسه تنظیم زاویه دقیقا هم زاویه با لاستیک به منظور فرمون دادن درست لاستیک ها و نداشتن حالت غیر عادی)

از جمله پارامترهای دیگه ای که می تونید به ماشین نسبت بدید دو یا چد لامپ هست که می تونید با اسکریپ اونها رو کنترل کنید و همینطور دود و غیره که البته من دود برای هر چهار چرخ رو توصیه نمی کنم چون particle محاسبات زیادی می بره و cpu میخوره و optimize(بهینه) نیست.

resim
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
 سپاس شده توسط TakOn1 ، محمدمهدی علیجانی ، King of Power ، Mehrdad ، Amirns ، AliScan ، jalal.jjj ، امیرحسین گیمر ، تور110 ، moien1 ، mhs1378 ، spark ، hossien021 ، Microsoft2 ، NAVIDAGR ، yasa ، shervin_akh ، aliheadari ، qwerty13 ، Ali360 ، Ali-reza8448 ، zZz ، Ali-reza8448v2 ، mohamadpc ، close.css ، mahdisml ، amin-ad ، MR.GHOST ، sadegh-sb
#2
کوچ مبتدیان از گیم میکر به یونیتی و راهکار درک اولیه:
دوستای که میخوان از گیم میکر(استادیو) به unity کوچ کنن شاید ابتدا دنبال اکشن و رویداد و چیزای ساده باشن و فکر کنن یونیتی سخته. برای راحتی این مطالب مختصر رو بدونید(سوالی بود فقط پ.خ کنید من آموزش رو ادامه میدم همینجا ) :

گیم میکر اگه event داره یونیتی هم داره.

اگه توی گیم میکر رویداد کلیک داریم توی یونیتی می گیم رویداد های onMouseDown و غیره داریم:
http://promakers.ir/showthread.php?tid=8...3#pid97723

توی گیم میکر رویداد create داریم توی یونیتی رویداد یا تابع function Start() رو داریم.

توی گیم میکر اگه Step داریم توی یونیتی تابع Update رو داریم

و الی آخر ... .
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
 سپاس شده توسط محمدمهدی علیجانی ، King of Power ، jalal.jjj ، moien1 ، spark ، Microsoft2 ، qwerty13 ، Ali-reza8448v2 ، mahdisml ، sadegh-sb
#3
منم یه طرفند بگم؟
طرفند که نیس ولی بازم کاربردیه
خیلی ها هم بلدن ولی ازش دربرابر این باگ یونیتی استفاده نمی کنن
برخی از دوستان همش شکایت می کنن که یونیتی یه باگی داره که وقتی جسمی با سرعت به یه کلایدر برخورد می کنه فیزیک یونیتی نمی تونه برخورد رو محاسبه کنه و ایراد پیش میاره
فقط کافیه برای این که این مشکل رو رفع کنین بگین وقتی فاصله ی جسم از 0.01 کمتر شد(اگه محاسبات بازیتون قوی تری میتونین عددی کوچیکتر انتخاب کنین) بگین شرططون برقرار بشه به همین سادگی
کدش هم این طوری میشه
کد:
var dist : float;
بعد اینو توی تابع آپدیت میگین
کد:
dist = Vector3.Distance( G.position , transform.position );
G توی اسکریپت بالا ترنسفرم گیم ابجکتیه که میخوایم برخورد بهش رو مشخص کنیم
کد:
if( dist < 0.01)
دستور مورد نظر رو هم زیر شرط بالا مینویسید
در حال یادگیری...
پاسخ
 سپاس شده توسط sajjad3011 ، jalal.jjj ، امیرحسین گیمر ، spark ، qwerty13 ، Microsoft2 ، Ali-reza8448v2 ، mahdisml ، sadegh-sb
#4
خوبه فقط چیزای تکراری سعی کنید نباشه. توی انجمن قبلش حتما کل تاپیک ها رو درو کنید و اسکریپت ها و حقه های کاربردی رو بگید که بیشتر به حل مسائل و دادن راهکار و الگوریتم منتهی بشه.wink
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
 سپاس شده توسط محمدمهدی علیجانی ، King of Power ، jalal.jjj ، moien1 ، spark ، Microsoft2 ، Ali-reza8448v2 ، close.css ، mahdisml ، sadegh-sb
#5
پرداخت درون برنامه ای unity برای کافه بازار:
http://pardakht.cafebazaar.ir/doc/unity3d/
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
 سپاس شده توسط محمدمهدی علیجانی ، King of Power ، lord arthas ، Amirns ، jalal.jjj ، تور110 ، moien1 ، spark ، navid021 ، UtmostGG ، Microsoft2 ، Mohamy ، Ali-reza8448v2 ، close.css ، mahdisml ، mihawk ، sadegh-sb
#6
زمین و درخت و چمن و Terrain رو که بلدین بسازید.
بلد نیستین؟ مهم نیست یه راهنما می خواید.
اینجا رو مطالعه کنید و زمین رو بسازید:
http://www.fizixstudios.com/labs/do/view...irst-steps
resim
در مورد زمین و اموزش توی انجمن هم مطلب زیاده من فقط اشاره کردم. پس شما الان باید بلد باشید با اموزشی که دادم و ترجمه اون به کمک http://translate.google.com زمین و اجزای اولیه رو توی یونیتی بسازید. این واسه مبتدیانwink
لطفا سوال نپرسید که مبحث بسیار پیش پا افتاده هست و فقط پ.خ کنید. چون اینجا نمی خوام خیلی ساده باشه درس',}
در مورد متغیر ها + توابع + تکرارها + انتخاب و برنامه نویسیشون اینجا رو مطالعه کنید :
Variables
- Functions
- Selection
- Iteration
http://www.fizixstudios.com/labs/do/view...cripting-2
فهمیدن قسمت های مختلف صحنه :
resim
اینجا رو بخویند:
http://www.fizixstudios.com/labs/do/view...g-unity-3d
مباحث مزخرف ابتدایی رو به سرعت دنبال کنید و وقتی یاد گرفتید تشکر رو بزنید تا برم روی چیزای متوسط و کمی پیشرفتهwink من هر شب انلاین هستم . ببینم بچه ها استقبال می کنن قول می دم از خواب شب بزنم چیزای کاربردی در راتای ساخت بازی رو یاد بدم به سرعت.cool
توی درس بعدی روش ساخت انسان و سپس ریگ کردن(Rigging) و سپس export و سپس import به یونیتی و حرکت اون رو یاد میدم.
تا امشب اگه بالای 10 تا تشکر باشه ادامه میدم ولی قرار نیست همه چیز رو درس بدم فقط راهکار میدم و منبعcool
قبل از اینکه ببینم تکر ها بالا میره یا خیر، ایده هایی رو توی ذهنتون ایجاد می کنم تا دست بکار بشید و بازی بسازید.
به این عکس نگاه کنید :
resim
چیز زیادی نداره.
یک مدل برای player (مدل یک مرغ که می تونه روی پا بمونه)
این مدل انیمیت شده (Rigged model) از مرغ(Mech) با پسوند blend که توسط بلندر طراحی شده :
resim
http://s5.picofile.com/file/8152659918/m...blend.html
این تکستچر زمین :
http://s5.picofile.com/file/8152659876/BumpyMetal.jpg
(اگه میخواید زمین زیبا تر بشه باید نوع یا خصوصت Type از plane رو در کادر hierarchy به جای diffiuse shader روی حالت normal map بذارید و توی تصویر عادی همین تکستچر رو بذارید و توی پارامتر Bumped یا normal map تصویر normal تولید شده از همین تکستچر رو بدید. برای تولید تصویر نرمال باید نرم افزار crazy bump رو با کرک به هر طریقی داشته باشید بعدش پ.خ کنید یادتون بدم چطوری زمین رو با جزئیات بسازید)

سات منو هم توی GUI یاد دادم باید توی انجمن بگردید.
یه متغیر speed هم واسه سرعت طبق عکس پروژه طراحی کنید.

مدل مرغ رو با ماوس می گیرید و می کشید توی پروژه(کادر project و در روی Assets رها می کنید)

بعدش از اونجا می کشید توی صحنه و روی plane میذارید.

فرق نمی کنه کاراکتر شما مرغ باشه یا انسان. مهم اینه که یه player می خواید بسازید واسه بازیتون.(اگه میخواید انسان بسازید با http://www.makehuman.org/ می سازید و سپس طبق اموزش های من که قبلا دادم با استخوان های humanid اونو export می کنید برای Blender و سپس توی blender اونو Rigg می کنید :
resim
این اموزش در اینجاست :
http://docs.unity3d.com/Manual/BlenderAndRigify.html
و چون شیلتر بود با firefox ذخیره کردم و آپلود کردم براتون بدون شیلتر :
اموزش ریگ مدل اکسپورت شده ی makehuman در blender و سپس انتقال به یونیتی
resim
http://s5.picofile.com/file/8152665376/b...g.zip.html

و سپس مدل ریگ شده ی حاوی انیمیشن راه رفتن رو مثل همون مرغ می برید و با ماوس می اندازید توی پروژه در یونیتی و بعدش توی صحنه یا hierarchy teeth )
همین پروژه ی مرغ، تحت (OGRE (Object-Oriented Graphics Rendering Engine قبلا اینجا(http://cordinc.com/blender/tutorials/mec...index.html) اموزش داده شده که من فقط مطالب رو دنبال می کنم واسه اینکه ذهنتون باز شه تحت unity teeth
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
 سپاس شده توسط محمدمهدی علیجانی ، arix ، Amirns ، TakOn1 ، jalal.jjj ، امیرحسین گیمر ، moien1 ، mohsen.jb ، spark ، Microsoft2 ، King of Power ، qwerty13 ، Sajjad_everwake ، ali.fefa8888 ، close.css ، sodi ، mahdisml ، MR.GHOST
#7
این مباحث رو یاد بگیرید و تمام کنید بعدش پ.خ کنید مشکلات خودتون رو و اینجا نپرسید چون اینجا باید اشاره کنم به منابع دیگه و راهکارهای کاربردی
آموزش استفاده از مدل مرغ ریگ شده ی قبل در unity :
resim
http://cordinc.com/blender/tutorials/mec...index.html
لینک شیلتر نیست اگه بود بگید آپ کنم یه جا دیگه. مرغ رو دانلود کنید(توی قسمت قبل لینک دانلود مدل انیمیت شده مرغ در بلندر رو گذاشتم) و طبق اموزش جلو برید و مشکلات رو پ.خ کنید سادستwink
با استفاده از همین ایده می تونید اولین بازی سه بعدی خودتون رو برای عظیمت از game maker به unity بسازید.
اسکریپت js برای دکمه ی x و z و چرخش 20 درجه منفی و مثبت به چپ و راست حول محور UP(همون محور Y) بسازید و این کد رو بریزید توش و بدید به مدل مرغ که گفتم دانلود کنید :
کد php:
//char controller simple.js
function Update () {

  if (
Input.GetKey (KeyCode.Z)) {

    
transform.RotateAround (Vector3.zeroVector3.up20 Time.deltaTime);

  } else if (
Input.GetKey (KeyCode.X)) {

    
transform.RotateAround (Vector3.zeroVector3.up, -20 Time.deltaTime)

  }


کد بالا هیچی نداره .
تابع RotateAround سه پارامتر می گیره و الگوش اینه:
کد php:
RotateAround(pointVector3axisVector3anglefloat): void
point : نقطه ی چرخش که اگه Vector3.zero باشه به معنی نقطه ی مرکزی صفر ( دقیقا وسط ابجکت) حساب می شه.
دومین پارامتر axis یا بردار یا محور چرخش مدل هست که محور y هست و با دستور Vector3.up تنظیمش کردیم.
سومی هم زاویه چرخش هست.

(KeyCode.Z) فشردن کلید Z رو بررسی می کنه و (KeyCode.X) فشردن کلید X رو . اگه روی صفحه کلید نگاه کنید می بینید Z سمت چپ X هست .پس X باید باعث چرخش به راست و Z باعث چرخش به چپ بشه(یعنی حول محور Y) که توی کد فوق باید به وضوح ببینید.
البته در کد فوق احتمالا با کلید Z مرغ به راست می چرخه و با X به چپ که خودتون می تونید توی اسکریپت -20 رو با +20 در قسمت دلخواه تغییر بدید.

اگه یه نفر هم موفق بشه و نمونه کارشو بعد از این اموزش ها بذاره من ایده های دیگه و راهکارهای دیگه و ترفندهای زیادی یاتون میدم که مطمئن باشید با استفاده از همین چیزا می تونید بازی های خوبی بسازید که در حین گرافیک کم ایده های جالبی میشه ساخت wink
ساخت یک بازی پینگ پونک دو بعدی در یونیتی
resim
این اموزش رو بخونید و جاهایی که سوال دارید پ.خ کنید:
http://noobtuts.com/unity/2d-pong-game
ایده :
مدل یک خرس را یا بسازید یا دانلود کرده و سپس ریگ کنید و در unity به همراه نوار سلامت طراحی کنید.
resim
راهنما: http://noobtuts.com/unity/

سوال نپرسید بلکه بسازید و نمونه کار رو بذارید

ساخت بازی آرکانوید در یونیتی از نمای دو بعدی دوربین

resim
راهنما:http://noobtuts.com/unity/2d-arkanoid-game
سوال نپرسید و افرادی که ساختن نمونه سورس رو بذارن تا مشکلات رو بهشون بگمwink
راهنمای ساخت بازی جاروکش مین:
resim
وب پیج راهنما: http://noobtuts.com/unity/2d-minesweeper-game
افرادی که ساختن نمونه رو بهم پ.خ کنن.
به زودی منتظر آموزش های پیشرفته و پیشرفت پرومیکرز و بچه هاش به شرطی که ببینم چقدر پیشرفت داشتید تا بازم راهکار بدمwink
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
 سپاس شده توسط Amirns ، King of Power ، محمدمهدی علیجانی ، AliScan ، moien1 ، qwerty13
#8
ایده طراحی محیط :
ابتدا نقشه دو بعدی از نمای بالا توی فتوشاپ یا ... بکشید و سپس بندازید روی plane (به صورت تکستچر) در یونیتی و سپس مدل ها رو بندازید روش.
معمولا نقشه های google رو با استفاده از city engine و روش های ترکیبی مثل همین روشی که یاد دادم میشه استفاده کرد برای ساخت محیط های مهندسی شده در بازی ها teeth
resim
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
 سپاس شده توسط محمدمهدی علیجانی ، moien1 ، King of Power ، qwerty13
#9
سعی کنید از طبیعت الهام بگیرید و روش های جدید رو بیاموزید.
مثال : به این تصویر shading بر حسب تکنیک های فیزیک در یونیتی 5 نگاهی بیندازید :
resim
و همینطور این:
resim

در یونیتی 5 می تونید با ادغام PBS و Enlighten GI نورهای خود را در تمام صحنه به سرعت ایجاد کنید.

البته من خودم هنوز از یونیتی 4.5 استفاده می کنم چون ورژن 5 هنوز در حال آزمایش خطایابی beta هست.

به تحته ها نگاه کنید. برچستگی ها رو می بینید؟ چیز خاصی نیستن. با نرمال مپ و کمی zbrush ترکیب شدن. نرمال مپ هم چیزی نیست و اموزش هاش توی انجمن هست.
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
 سپاس شده توسط محمدمهدی علیجانی ، AliScan ، moien1 ، King of Power
#10
ساخت پیانو
resim
یک cube ایجاد کنید.

انتخابش کنید و یک audio source بهش نسبت بدید(component->audio-audio source)

یک فایل mp3 شامل اکتاو پیانو از اینجا دانلود و به پروژه اضافه کنید :
https://www.freesound.org/people/pinkyfi...acks/4409/

سپس cube رو از hierarchy بکشید و توی projects رها کنید تا یک prefab ازش ساخته بشه.

فایل mp3 رو از توی projects بکشید روی prefab رها کنید.

سپس cube رو از hierarchy حذف کنید.

یک اسکریپت سیشارپ به نام pianoScript ایجاد کنید با این کد:
کد php:
//pianoScript.cs
using UnityEngine;
using System.Collections;

public class 
pianoScript MonoBehaviour {
    
// Use this for initialization

    
        
public float semitone_offset=0;        
        

        
void Start(){
        }
        
void Update(){
        }
        
    
void OnMouseDown () {
        
PlayNote ();
    }
    
void PlayNote(){
    
        
audio.pitch=Mathf.Pow(2f,semitone_offset/12.0f);
        
audio.Play ();
    }

    } 
این اسکریپت رو بندازید روی prefab ایجاد شده .
حالا prefab رو بندازید توی صحنه یا hierarchy و سه تا کپی بگیرید و طوری بچینید توی صحنه که دوربین بتونه اونو خوب ببینه.
یک نور مستقیم هم به صحنه اضافه کنید(رنگ نور رو سبز دادم که مهم نیست)

نکته : بعد از افزودن اسکریپت به prefab می تونید هر یک از prefab های اضافه شده به صحنه رو انتخاب کنید و پارامتر semitone_offset اونا رو عدد دلخواه بدید و بعد اجرا کنید پروژه رو.

روی هر دکمه که کلیک کنید صدای خودشو میده.

سوالی بود پ.خwink
https://telegram.me/gameoverblog
بیشتر از آنچه برای موفق بودن تلاش می کنی برای با ارزش بودن تلاش کن.آلبرت انیشتین.



پاسخ
 سپاس شده توسط AliScan ، محمدمهدی علیجانی ، moien1 ، King of Power ، ali.fefa8888


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزش یونیتی از مبتدی تا متوسط برنامه ریزی شده amirhosein.raad 24 2,650 26/2/1396، 08:24 عصر
آخرین ارسال: TakOn1
  پرداخت درون برنامه ای بازار sajjad3011 0 326 4/10/1394، 10:41 عصر
آخرین ارسال: sajjad3011
Big Grin دانلود کتاب فارسی آموزش کامل زبان برنامه نویسی پایتون Teshne 3 1,115 19/2/1394، 06:25 عصر
آخرین ارسال: sajjad3011
Question اسکریپت نویسی در یونیتی به زبان C# soroosh 4 4,526 20/10/1393، 01:38 عصر
آخرین ارسال: Ali-reza8448
  شیدر نویسی در یونیتی : مقدمه lord arthas 1 1,078 23/9/1393، 09:52 عصر
آخرین ارسال: sajjad3011



کاربرانِ درحال بازدید از این موضوع: 1 مهمان