«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
بایگانی بهمن ۱۳۹۴ :: برنامه نویسی+طراحی وب+ساخت بازی+نرم افزار +اپلیکیشن

برنامه نویسی+طراحی وب+ساخت بازی+نرم افزار +اپلیکیشن

gameover private channel
لینک کانال خصوصی گیم اور
https://t.me/gameoverblog

هر پکیجی که توان خریدش ندارید رایگان.اگه مشکل مالی ندارید حمایت کنید.
-
اعمالی که انجام می دهیم، اگر ذره ای و مثقالی باشد، به خودمان باز می گردد و بازتابش آنها را در زندگی خواهیم دید.زلزال۷
او کسی است که (روح) شما را در شب (به هنگام خواب) میگیرد; و از آنچه در روز کرده ‏اید، با خبر است; سپس در روز شما را(از خواب) برمیانگیزد; و (این وضع همچنان ادامه مییابد) تا سرآمد معینی فرا رسد; سپس بازگشت شما به سوی اوست; و سپس شما را از آنچه عمل میکردید، با خبر میسازد.انعام۶۰
دلها به یاد خدا آرام میگیرد.رعد ۲۷
زندگی دنیا تنها بازی و سرگرمی، و تجمل پرستی و تفاخر در میان شما و افزون طلبی در اموال و فرزندان است . حدید 20
آن خدایی که آدمی را از خون بسته (که تحول نطفه است) بیافرید
بخوان و (بدان که) پروردگار تو کریم‌ترین کریمان عالم است
آن خدایی که بشر را علم نوشتن به قلم آموخت
به آدمی آنچه را که نمی‌دانست تعلیم داد.
راستی که انسان سرکش و مغرور می‌شود.
چون که خود را در غنا و دارایی ببیند. علق ۲- ۷
این زندگانی چند روزه دنیا افسوس و بازیچه‌ای بیش نیست، عنکبوت ۶۴
در روی زمین به تکبر راه مرو که نمی توانی زمین را بشکافی و هرگز قامتت به بلندای کوهها نمی رسد. اسرا ۳۷
در آنچه خداوند بر تو بخشیده است، سرای آخرت را بجوی و سهم خود را از دنیا فراموش مکن و همانگونه که خدا به تو نیکی کرده است نیکی کن و هرگز فساد در زمین منما که خدا مفسدان را دوست ندارد. قصص ۷۷
و هرگاه نعمت و رحمتی به انسان بچشانیم و سپس آن را از او برگیریم او مأیوس و نومید میشود و به کفران و ناسپاسی بر میخیزد. هود ۹
بندگان مرا آگاه ساز که من بسیار آمرزنده و مهربانم.حجر۴۹
از رحمت خدا ناامید مباشید جز کافر هیچ کس از رحمتش نا امید نیست.یوسف۸۷
پس به یاد من باشید تا به یاد شما باشم. بقره ۱۵۲
زندگانی دنیا جز متاع فریبنده نیست . آل عمران ۱۸۵
از آنچه به شما روزی داده ایم پیش از آنکه روزی فرا رسد که نه معامله ای وجود دارد و نه دوستی و شفاعت ، انفاق کنید. بقره ٢۴۵
بسا چیزی را ناخوش داشته باشید که آن به سود شماست و بسا چیزی را دوست داشته باشید که به زیان شماست، و خدا میداند و شما نمیدانید. بقره۲۱۶
آیات (خود) را برای شما بیان کردیم شاید اندیشه کنید...حدید۱۷

پیوندهای روزانه
پیوندها

۵۶ مطلب در بهمن ۱۳۹۴ ثبت شده است

پارت یک:
http://opizo.com/xy2KSV

پارت دوم:
http://opizo.com/fCTxYI

۰ نظر موافقین ۰ مخالفین ۰ ۳۰ بهمن ۹۴ ، ۲۳:۰۳
مدیرکل

pycharm نرم افزاری از jetbrain هست واسه کدنویسی پایتون.

http://img.p30download.com/software/image/2016/02/1454310166_pycharm.jpg

http://opizo.com/xZrYBJ

۰ نظر موافقین ۰ مخالفین ۰ ۳۰ بهمن ۹۴ ، ۰۸:۱۸
مدیرکل
gameover.blog.ir
How To Draw Comics The Marvel Way
به لینک زیر برید و بعد از چند ثانیه رد تبلیغ رو بزنید تا به mediaFire برید:
کامیک یعنی داستان تصویری

http://opizo.com/Q7aYWg


۰ نظر موافقین ۰ مخالفین ۰ ۳۰ بهمن ۹۴ ، ۰۲:۴۰
مدیرکل
سورس بازی دوز در یونیتی:
http://opizo.com/2m8TEW
۰ نظر موافقین ۰ مخالفین ۰ ۲۶ بهمن ۹۴ ، ۰۲:۳۵
مدیرکل

دانلود کتاب LEvel up شامل نکات ابتدایی ساخت بازی ها

http://s6.picofile.com/file/8238758676/level_up.jpg

http://opizo.com/OUJdvH

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ بهمن ۹۴ ، ۰۸:۴۷
مدیرکل

gameover.blog.ir

سازنده:مهدی+سجاد

http://s6.picofile.com/file/8238635342/way.jpg

این جلسه اسکریپت به شما برنامه نویسی way point آموزش داده میشه به طوری که می تونید به سرعت یاد بگیرید خودتون برنامه ای بنویسید تا در محیط ویرایش قبل از runTime یعنی محیط Scene Editor با استفاده از توابع Draw بین اشیای مختلف خط ارتباط ترسیم کنید تا بهتر از طراحی های خودتون مخصوصا در بازی های مهندسی شده استفاده کنید. کیفیت آموزش عالی هست و هر مشکلی بود توی وبلاگ ما و گروه تلگرام پاسخگو خواهیم بود انشاءا... .

خرید


۱ نظر موافقین ۰ مخالفین ۰ ۲۴ بهمن ۹۴ ، ۱۴:۳۴
مدیرکل

gameover.blog.ir



کد روشن و خاموش کردن چراغ/روشن و خاموش کردن لامپ/خاموش و روشن کردن چراغ/خاموش و روشن کردن لامپ:


public GameObject lamp;


برای کلیک دکمه ی دلخواه این کد رو بذارید که هر بار not می کنه (علامت تعجب ! به معنی نات یا معکوس کردن از true به false یا بلعکس می باشد):

target.SetActive(!target.activeSelf);

۱ نظر موافقین ۰ مخالفین ۰ ۲۴ بهمن ۹۴ ، ۰۰:۳۷
مدیرکل

gameover.blog.ir

http://www.quicklearn.ir/wp-content/uploads/edd/2015/12/download_book.jpg

۰ نظر موافقین ۰ مخالفین ۰ ۲۳ بهمن ۹۴ ، ۲۲:۲۰
مدیرکل

gameover.blog.ir

تگ یا Tag عنی برچسب یا اسم مستعار.
توی html ما قبلا به چند تا ابجکت id می دادیم که ثابت بود و هر ابجکت یه اسم ثابت داشت نمی تونستیم تغییرش بدیم ولی می تونستیم یه کلاس یا class تعریف کنیم و همه ی ابجکت های لخواه رو از نوع اون کلاس تعریف کنیم یا برچسب بزنیم. بعدش که میخواستیم تغییراتی روی اون ابجکت ها ایجاد کنیم دیگه دستی اینکار سخت بود. کافی بود اسم اون کلاس رو داشته باشیم و خصوصیاتشو دستکاری کنیم یا بهشون دستیابی داشته باشیم.
توی html چیزی بود تو مایه های tagByName یا tagByID که بهش ایدی میدادیم و خودش همه رو لیست می کرد بعدش میریختیم توی ارایه و با یه حلقه ی تکرار به کل ابجکت های ریخته شده توی ارایه دسترسی داشتیم و یه سری عملیات کلی روی اونا انجام میدادیم.

توی unity یه چیز توی همون مایه ها هست یبه اسم tag.
مثلا من سه تا دوربین دارم:
cam1
cam2
cam3
--
به هر سه تاشون برچسب cam می زنم
بعدش با کدی مثل این همشون رو غیر فعال می کنم:

//Disable all cameras with tag 'cam'
     var cameras = GameObject.FindGameObjectsWithTag("cam");    
     for (var cams : GameObject in cameras)
     {
      cams.GetComponent(Camera).enabled = false;      
     }
بعدش با کد دوربین رو فعال می کنم:
gameObject.Find("cam1").GetComponent(Camera).enabled = true;
(البته برای غیر فعال کردن یا فعال کردن یک گیم ابجکت از دستور setActive هم استفاده میشه.)
۰ نظر موافقین ۰ مخالفین ۰ ۲۲ بهمن ۹۴ ، ۱۶:۴۲
مدیرکل

منبع:gameover.blog.ir


http://tf3dm.com/imgd/l24584-army-pilot-fully-rigged-animated-20-animations-57044.png

http://www.mediafire.com/download/ur2egvx855irm9e/soldier_ArmyPilot-20Animation.7z

نکته :

باید حتما برنامه 7zip رو داشته باشید برای اینکه فایل فشرده شده با پسوند 7z هست.

۰ نظر موافقین ۰ مخالفین ۰ ۲۱ بهمن ۹۴ ، ۰۱:۴۴
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۱ بهمن ۹۴ ، ۰۰:۳۲
مدیرکل

gameover.blog.ir

بعد از چند ثانیه رد تبلیغ رو بزنید(حجم 14 کیلو بایت )

Bouncy.physicmaterial فیزیک ماده فنر
Collision_Material.physicMaterial فیزیک ماده ی تصادم یا برخورد
Ice.physicmaterial فیزیک ماده یخ
Metal.physicmaterial فیزیک آهن
Rubber.physicmaterial فیزیک لاستیک
Vehicle.physicMaterial فیزیک وسیله نقطه
Wood.physicmaterial فیزیک چوب

http://opizo.com/gj0Yxa

۰ نظر موافقین ۰ مخالفین ۰ ۱۹ بهمن ۹۴ ، ۰۳:۴۴
مدیرکل

منبع:gameover.blog.ir

عکس گرفتن از صفحه گوشی اندروید

برای اینکار کلید Volume down و Power رو با هم چند لحظه نگه دارید:



http://screenshot.net/wp-content/uploads/2015/01/huaweiscreenshotandroid.jpg


۰ نظر موافقین ۰ مخالفین ۰ ۱۸ بهمن ۹۴ ، ۱۸:۵۹
مدیرکل
GAMEOVER.BLOG.IR

http://opizo.com/LDJEbx



۰ نظر موافقین ۰ مخالفین ۰ ۱۸ بهمن ۹۴ ، ۱۸:۰۸
مدیرکل

منبع:gameover.blog.ir


وکتور 4 پارامتر چهارم هست.
ما بردار 5 بعدی و .... هم داریم.
مثل آرایه ای که چند مقدار می گیره.
حالا اگه سه باشه بهش می گیم بردار سه بعدی.
اگه چهار باشه برای موارد خاص بکار می ره.
مثلا رنگ
Red
Green
Blue
اون آخری هم آلفا یا شفافیت نور.

بقیه رو بدو دوست من.

۰ نظر موافقین ۰ مخالفین ۰ ۱۸ بهمن ۹۴ ، ۰۶:۱۷
مدیرکل

gameover.blog.ir

توی وبلاگ سعی می کنم مطالب رو از هیچ جایی نگیرم جز خود سایت یونیتی.

شکل زیر رو ببینید تکمیله نیاز به دیدن فیلم و ... هم نیست که این همه سایت سرگردون می کنه آدمو.

قسمت هایی که مکعب مستطیلی هست.اون نواحی فقط رندر میشه.(رندر به معنی اینه که پرداش بیشتری برای سایه زنی و .... انجام میشه نه اینکه اون بیرونی ها دیده نشن. اونا یه جوری مثل عکس یا حالت از پیش رندر شده دارن و پردازش اضافه نمیشن و مصرف بهینه میشه)

http://s6.picofile.com/file/8209938868/OcclusionCullingOcclusionArea.gif

وب پیج رو zip کردم بعد از آنزیپ با فایرفاکس باز کنید. موفق باشید

http://opizo.com/flbClD

 

۰ نظر موافقین ۰ مخالفین ۰ ۱۷ بهمن ۹۴ ، ۱۶:۵۲
مدیرکل

https://s.cafebazaar.ir/1/upload/screenshot/com.Microsoft.Evil7.jpg


۰ نظر موافقین ۰ مخالفین ۰ ۱۶ بهمن ۹۴ ، ۰۳:۳۲
مدیرکل
۲ نظر موافقین ۰ مخالفین ۰ ۱۶ بهمن ۹۴ ، ۰۳:۲۸
مدیرکل
منبع:gameover.blog.ir


Sub Globals
Dim p As PhoneIntents
End Sub

Sub Activity_Create(FirstTime As Boolean)
	'Do not forget to load the layout file created with the visual designer. For example:
	Activity.LoadLayout("Layout1")
    StartActivity(p.OpenBrowser("http://www.basic4ppc.com"))
End Sub

https://www.b4x.com/android/forum/threads/open-the-browser-with-a-specific-web-page.6666/


خرید آموزش b4a فارسی با قیمت کم:
http://gameover.blog.ir/1395/04/03/%DA%A9%D8%AA%D8%A7%D8%A8-%D9%81%D8%A7%D8%B1%D8%B3%DB%8C-%D8%A7%D9%85%D9%88%D8%B2%D8%B4-b4a-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%AF%DB%8C%D9%85-%D8%A2%D9%88%D8%B1
۱ نظر موافقین ۰ مخالفین ۰ ۱۵ بهمن ۹۴ ، ۰۳:۵۸
مدیرکل

منبع:gameover.blog.ir


Sprite spr1=Resources.Load<Sprite>("sprites/newSprite");//load Assets/Resources/sprites/newSprite.png GetComponent<SpriteRenderer> ().sprite = spr1;

نکته بسیار مهم:

پسوند فایل رو نباید توی کد قرار بدید.

همچنین مسیر باید اسلش داشته باشه. بک اسلش کار نمی کنه.طبق هلپ یونیتی.

نکته مهم بعدی:

مسیر فایل sprites/newSprite.png باید حتما در زیر شاخه ی زیر باشه حتما:

Assets/Resources


۰ نظر موافقین ۰ مخالفین ۰ ۱۴ بهمن ۹۴ ، ۰۳:۵۳
مدیرکل
منبع:gameover.blog.ir
condition = شرط دلخواه
(مثلا بحثی وقتا میخواید شتاب یا velocity رو تو بازی های دو بعدی پس از تشخیص موانع صفر کنید شتاب محور x رو صفر می کنید کار نمیده . اینجا حرکت در محور x رو قفل یا freeze میکنیم. فریز به معنی یخ زدن یا از کار انداختن هست)
Rigidbody2D body2d;    
        body2d = GetComponent<Rigidbody2D> ();
        
        if (condition) {
            
            body2d.constraints = RigidbodyConstraints2D.FreezePositionX;
            
        } else {
            
            body2d.constraints = RigidbodyConstraints2D.None;
            
        }

۰ نظر موافقین ۰ مخالفین ۰ ۱۴ بهمن ۹۴ ، ۰۲:۳۸
مدیرکل

gameover.blog.ir
۱ نظر موافقین ۰ مخالفین ۰ ۱۴ بهمن ۹۴ ، ۰۱:۰۷
مدیرکل

http://fud.community.services.support.microsoft.com/Fud/FileDownloadHandler.ashx?fid=f1285b35-bafc-43d4-ad80-dd284d7ba752

ابتدا خط فرمان رو رات کلیک کرده و run as administrator اجرا کنید.

این دستور رو اجرا بگیرید:

sfc /scannow

صبر کنید تا عملیات تمام بشه.

اگه مشکل حل نشد.این کارها رو هم انجام بدید:

msert رو از اینجا دانلود کنید:

http://www.microsoft.com/security/scanner/en-us/default.aspx


ابزار MicrosoftFixit.Devices.Run رو هم از این لینک بگیرید:

http://windows.microsoft.com/en-us/windows/tips-fixing-common-driver-problems#tips-fixing-common-driver-problems=windows-7



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

اگه حل نشد وارد device manager بشید (با راست کلیک روی my computer و properties و ...) و سپس روی درایور مربوطه راست کلیک و sca for hardware change بزید.
۰ نظر موافقین ۰ مخالفین ۰ ۱۳ بهمن ۹۴ ، ۰۶:۲۹
مدیرکل

شلیک سینوسی در فضای سه بعدی به سمت هدفی که در روبروی ما قرار دارد

http://s3.picofile.com/file/8225755176/Learn.jpg


اگه می خوای دقیق و به صورت دایره ای و هوشمند بزنی به هدف:
اولا باید فاصله خودتو تا هدف محاسبه کنی
 این با تابع Distance بدست میاد.
بعدش با معادله ی دایره،فیثاغوریث یا توابع مثلثات میزنی به هدف.
فرمولشم اینه:

X2=R*Cos(teta)+x1
y2=R*Sin(teta)+y1


در سه بعدی  اگه بخوای به جلو بره این میشه:
به جای X1,Y1 مختصات دو بعد از گیم ابجکت گلوله رو باید بدی به طوری که رو به جلو باشه یعنی Z به جای X1 و Y هم به جای Y1 .
X2,Y2 رو بعدش بده تیر .
تتا رو از صفر تا 180 مقدار میدی
به R هم فاصله نقطه ایجاد تیر تانک تا هدف رو میدی.
مثلا یک حلقه while یا تایمر بنویس که تتا teta رو از منفی 90 تا مثبت 90 درجه دونه دونه زیاد کنه.
بعدش می گی:

//sajjad3011
teta=-90;
float distance = Vector3.Distance(transform.position,hadaf.position);
midz = distance / 2;

while(teta<+90)
{
 teta++;
    deltaZ=radius*cos((teta*3.14)/180);
    deltaY=radius*sin((teta*3.14)/180);

z=z+midz+deltaZ;
y=y+deltaY;

position=new Vector3(this.position.x,y,z)//be x dast nemizanim chon Left/Right ro kari nadarim faghat z/jelo+y/bala
}



بخوام  توضیح بدم باید این برنامه رو درک کنی و فقط توی سه بعدی تجسم کن که حرکت ما به سمت جلو هست پس خودت توی فضا میری سمت راست فکر کن توی محیط حاضر هستی و پس می فهمی x همون z(یعنی حرکت به جلو در واقیت و حرکت به راست ما در تجسم ) هست و y همون y .
(رسم دایره با استفاده از مثلثات و حلقه تکرار):
http://gameover.blog.ir/1394/03/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%88-%D8%B3%D9%88%D8%B1%D8%B3-%DA%86%D8%B1%D8%AE%D8%B4-%D8%AF%D8%A7%DB%8C%D8%B1%D9%87-%D8%AD%D9%88%D9%84-%D9%85%D8%B3%D8%AA%D8%B7%DB%8C%D9%84-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D9%81%D8%B1%D9%85%D9%88%D9%84%D9%87%D8%A7%DB%8C-%D9%85%D8%AB%D9%84%D8%AB%D8%A7%D8%AA%DB%8C-%D8%A8%D9%87-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B3%DB%8C

تئوری کار همینا بود و اگه خطایی داشت با فکر کردن حلش کنید.

نکته آخر:

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

۱ نظر موافقین ۰ مخالفین ۰ ۱۳ بهمن ۹۴ ، ۰۰:۵۶
مدیرکل
gameover.blog.ir
مسیر دقیق پوشه های نصب android sdk manager برای خروجی گرفتن اندروید در unity و game maker studio و basic4android :



محتوای پوشه ی android-SDK:
۱ نظر موافقین ۰ مخالفین ۰ ۱۱ بهمن ۹۴ ، ۱۴:۲۵
مدیرکل
http://crook100.esy.es/PostApo.png

حجمش حدود سیصد مگ هست.
روی لینک زیر بزنید و چند ثانیه صبر کنی و رد تبلیغ رو بزنید:
http://opizo.com/svwaq7

۰ نظر موافقین ۰ مخالفین ۰ ۱۱ بهمن ۹۴ ، ۰۷:۱۹
مدیرکل
منبع:gamever.blog.ir
زبان js هست (اما بهتره خودتون تبدیل کنید به سیشارپ چون استاندارد تر هست)
var target : Transform; //the enemy's target
var moveSpeed = 3; //move speed
var rotationSpeed = 3; //speed of turning
var range : float=10f;
var range2 : float=10f;
var stop : float=0;
var myTransform : Transform; //current transform data of this enemy
function Awake()
{
    myTransform = transform; //cache transform data for easy access/preformance
}
 
function Start()
{
     target = GameObject.FindWithTag("Player").transform; //target the player
 
}
 
function Update () {
    //rotate to look at the player
    var distance = Vector3.Distance(myTransform.position, target.position);
    if (distance<=range2 &&  distance>=range){
    myTransform.rotation = Quaternion.Slerp(myTransform.rotation,
    Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed*Time.deltaTime);
    }
 
 
    else if(distance<=range && distance>stop){
 
    //move towards the player
    myTransform.rotation = Quaternion.Slerp(myTransform.rotation,
    Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed*Time.deltaTime);
    myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
    }
    else if (distance<=stop) {
    myTransform.rotation = Quaternion.Slerp(myTransform.rotation,
    Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed*Time.deltaTime);
    }
 
 
}

۰ نظر موافقین ۰ مخالفین ۰ ۱۱ بهمن ۹۴ ، ۰۶:۱۹
مدیرکل
منبع:gameover.blog.ir
کد شلیک گلوله سه بعدی و نابود شدن دشمن پس از برخورد تیر با هدف که تگ enemy دارد.
کد تیر اندازی در صورتی که خشاب،تیر داشته باشه برای یونیتی.
کد شلیک گلوله سه بعدی و نابود شدن دشمن پس از برخورد تیر با هدف که تگ enemy دارد.
کد تیر اندازی در صورتی که خشاب،تیر داشته باشه برای یونیتی.کد تیر زدن در یونیتی_کد تیر اندازی در یونیتی_کد شلیک تیر در یونیتی_کد شلیک گلوله در یونیتی_اسکریپت شلیک در یونیتی_اسکریپت تیر اندازی در یونیتی_اسکریپت تیر زدن در یونیتی.
//tirZadan.cs
//Author:sajjad
//gameover.blog.ir
//@gameoverblog
using UnityEngine; using System.Collections; public class tirZadan: MonoBehaviour { // Use this for initialization public Transform emptyGameObject; public float distance; public GameObject enemy,prefBullet,bullet; public AudioClip shootAudio; public Transform shootPoint; float volumeSeda=1.0F;
int tedadTir=10;
void Update () { if (Input.GetButtonDown ("Fire1")) //age left_click shod { if(tedadTir > 0) { tedadTir--; bullet= Instantiate(prefBullet, emptyGameObject.position, Quaternion.identity)as GameObject; AudioSource.PlayClipAtPoint(shootAudio, shootPoint.transform.position, volumeSeda); } } }//update }
کد زیر هم به پریفب گلوله میدیم:
//bullet.cs
using
UnityEngine; using System.Collections; public class bullet: MonoBehaviour { public RigidBoy rb; float distance=0.0f;//fasele sefr yani faghat vaghti tir barkhord kard be hadaf void Start(){ rb.AddRelativeForce(Vector3.forward );//partabe tir be samte jelo Destroy(gameObject, 3.0f);//hazfe tir pas az 3 sanie } void OnGUI(){ myRaycast(); } void myRaycast(){ RaycastHit hit; Ray myRay = new Ray(transform.position, Vector3.forward); if(Physics.Raycast (myRay, out hit, distance)){ if(hit.collider.tag == "enemy"){ Destroy(enemy); Destroy(this.gameobject); }//if }//if }//myRaycast }


نکته:
 تیر و دشمن هر دو پس از برخورد از بین میرن.
تیر در صورت عدم برخورد هم پس از سه ثانیه از بین میره.
شما باید پریفب تیر رو درگ کنید روی متغیر prefBullet.
(برای ساخت پریفب،کافیه یک مدل از تیر رو از داخل hierarchy درگ کنید به کادر project. سپس تیر رو از داخل صحنه حذف کنید)
۰ نظر موافقین ۰ مخالفین ۰ ۱۱ بهمن ۹۴ ، ۰۵:۲۶
مدیرکل
gameover.blog.ir
به لینک برید و چند ثانیه صبر و رد تبلیغ رو بزنید:
http://opizo.com/HQwAFc

۰ نظر موافقین ۰ مخالفین ۰ ۱۱ بهمن ۹۴ ، ۰۳:۲۶
مدیرکل
منبع:gameover.blog.ir

حجم:
3.5 Mb
به این لینک برید:
چند ثانیه صبر کرده و رد تبلیغ ر بزنید. لینک مستقیم دانلود میاد.
http://opizo.com/nItGRI

چند ثانیه صبر کرده و رد تبلیغ ر بزنید. لینک مستقیم دانلود میاد.
اینم دو تا آموزش:
http://opizo.com/2NqRgN

http://opizo.com/ZM7EBM

۰ نظر موافقین ۰ مخالفین ۰ ۱۱ بهمن ۹۴ ، ۰۱:۴۰
مدیرکل
منبع:gameover.blog.ir
دقت کردید بعضی برنامه های اندرویدی یا بازی ها با چرخش گوشی اشیاشون حرکت می کنه یا توپ و ... ؟
این با ژیروسکوپ یا سنسور اکسیلریشن acceleration هست. شکل رو ببینید:
http://www.i-phone.ir/forums/uploadedpictures/8cc1d230c10801cfb2144d6bac42639f.jpg

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public float speed = 10.0F;
    void Update() {
        Vector3 dir = Vector3.zero;
        dir.x = -Input.acceleration.y;
        dir.z = Input.acceleration.x;
        if (dir.sqrMagnitude > 1)
            dir.Normalize();
        
        dir *= Time.deltaTime;
        transform.Translate(dir * speed);
    }
}

این تصویر کوچک شده است.انداره واقعی : (888x716).برای دیدن در اندازه واقعی روی تصویر کلیک کنید.
[تصویر: accelerometer.jpg]

اینم کد برای چرخش دوربین :



using UnityEngine;
 using System.Collections;
 
 public class TiltAround : MonoBehaviour 
 {
     private Quaternion localRotation; // 
     public float speed = 1.0f; // ajustable speed from Inspector in Unity editor
 
     // Use this for initialization
     void Start () 
     {
         // copy the rotation of the object itself into a buffer
         localRotation = transform.rotation;
     }
     
     
     void Update() // runs 60 fps or so
     {
         // find speed based on delta
         float curSpeed = Time.deltaTime * speed;
         // first update the current rotation angles with input from acceleration axis
         localRotation.y += Input.acceleration.x * curSpeed;
         localRotation.x += Input.acceleration.y * curSpeed;
         
         // then rotate this object accordingly to the new angle
         transform.rotation = localRotation;
     
     }
     
 }
منبع:
http://answers.unity3d.com/questions/167756/rotation-script-with-accelerometer-android.html
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ بهمن ۹۴ ، ۲۳:۰۸
مدیرکل
منبع: gameover.blog.ir
http://img.soft98.ir/oCam.jpg
ما برنامه های زیادی داریم :
bb flash back pro
camtasia
screen recorder
captivate از شرکت adobe
oCam
و ....
---
بین اون بالایی ها از همه کم حجم تر و بهتر oCam هست که 7 مگ هم بیشتر نیست:
http://soft98.ir/multi-media/screen-capture/16717-oCam.html

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ بهمن ۹۴ ، ۲۰:۰۲
مدیرکل
منبع:gameover.blog.ir
http://gameover.sellfile.ir/prod-images/356249.jpg

در این آموزش با کیفیت عالی یاد می گیرید که در یونیتی انیمیشن دو بعدی بسازید و کاراکتر رو برای پرش و دویدن به چپ و راست انیمیت کنید و بعدش کدی با سیشارپ بنویسید که کاراکتر به همراه انیمیشن به حرکت در بیاد.

حجم آموزش: 128 مگ. بعد از آنزیپ دو برابر میشه حجمش.

نکته : باید برنامه  7 zip رو نصب کنید تا بتونید این اموزش رو آنزیپ کنید.

فرمت فایل بعد از انزیپ: mp4

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

قیمت این آموزش بسیار کم و ارزون هست ولی کیفیت اموزش عالیه و تضمین یادگیری.

اگه مشکلی توی دانلود یا ... پیش اومد تو نظرات بگید ایمیل بدید لینک mediaFire رو بهتون ارسال می کنیم.

لینک خرید

http://gameover.sellfile.ir/prod-356249-%D9%81%DB%8C%D9%84%D9%85+%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C+%D8%B3%D8%A7%D8%AE%D8%AA+%D8%A7%D9%86%DB%8C%D9%85%DB%8C%D8%B4%D9%86+%D8%AF%D9%88+%D8%A8%D8%B9%D8%AF%DB%8C++%D9%88+%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87+%D9%86%D9%88%DB%8C%D8%B3%DB%8C+%D8%AD%D8%B1%DA%A9%D8%AA+%D8%A8%D9%87+%DA%86%D9%BE+%D9%88+%D8%B1%D8%A7%D8%B3%D8%AA+%D9%88+%D9%BE%D8%B1%D8%B4+%D8%AF%D8%B1+%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C+5.html


۰ نظر موافقین ۰ مخالفین ۰ ۱۰ بهمن ۹۴ ، ۰۹:۰۸
مدیرکل

منبع:gameover.blog.ir

ساخت یه بازی با دو تا دوربین سخت نیست.
دو تا Camre رو Add کنید .
مقدار خصوصیت H هر دو تا دوربین رو بذارید 0.5
Y بازیکن اول رو بدید 0.5
Y بازیکن دوم رو بدید 0
--
با اینکار بازیکن اول دوربینش بالای صحنه قرار می گیره و اون یکی پایین.

http://sajjad3011.persiangig.com/unity_tut_sajjad3011/Cameras-2.jpg


۰ نظر موافقین ۰ مخالفین ۰ ۱۰ بهمن ۹۴ ، ۰۷:۲۵
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۱۰ بهمن ۹۴ ، ۰۱:۰۱
مدیرکل

فیلم آموزش آماده سازی کاراکتر دو بعدی در فتوشاپ برای انتقال به یونیتی و همچنین نحوه ی تنظیم آن در یونیتی 5

کیفیت : عالی

حجم:26 مگ (بعد از آنزیپ کردن میشه 60 مگ)

فیلم آموزش آماده سازی کاراکتر دو بعدی در فتوشاپ برای انتقال به یونیتی و همچنین نحوه ی تنظیم آن در یونیتی 5
























http://gameover.sellfile.ir/prod-356118-%D9%81%DB%8C%D9%84%D9%85+%D8%A2%D9%85%D9%88%D8%B2%D8%B4+%D8%A2%D9%85%D8%A7%D8%AF%D9%87+%D8%B3%D8%A7%D8%B2%DB%8C+%DA%A9%D8%A7%D8%B1%D8%A7%DA%A9%D8%AA%D8%B1+%D8%AF%D9%88+%D8%A8%D8%B9%D8%AF%DB%8C+%D8%AF%D8%B1+%D9%81%D8%AA%D9%88%D8%B4%D8%A7%D9%BE+%D8%A8%D8%B1%D8%A7%DB%8C+%D8%A7%D9%86%D8%AA%D9%82%D8%A7%D9%84+%D8%A8%D9%87+%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C+%D9%88+%D9%87%D9%85%DA%86%D9%86%DB%8C%D9%86+%D9%86%D8%AD%D9%88%D9%87+%DB%8C+%D8%AA%D9%86%D8%B8%DB%8C%D9%85+%D8%A2%D9%86+%D8%AF%D8%B1+%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C+5.html


نکته:
در آموزش بعدی کدنویسی کاراکتر دو بعدی و گیم پلی و تاچ در یونیتی رو خواهیم گذاشت.ممنون از حمایت شما.
۱ نظر موافقین ۰ مخالفین ۰ ۱۰ بهمن ۹۴ ، ۰۰:۱۴
مدیرکل

بازی قشنگی هست حتما بازی کنید حجمش هم کمه.

ببینید رکوردتون چند میشه.

ضنا باید روی مرورگر شما فلش پلیر نصب باشه.

بعد از چند ثانیه رد تبلیغ رو بزنید تا هدایت بشید به صفحه بازی.

http://adamatomic.com/gfx/panels/canabalt.png


۰ نظر موافقین ۰ مخالفین ۰ ۰۸ بهمن ۹۴ ، ۲۱:۲۰
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۰۸ بهمن ۹۴ ، ۲۰:۱۰
مدیرکل

رویدادهای زیادی داریم مثل

Collider.OnTriggerEnter برای بررسی اولین بار ورود یک شی به محدوده شی دیگر که دارای کلایدر باشه و کلایدر اون isTrigger اش تیک خورده باشه(تا بشه از کلایدرش عبور کرد مثل نردبان که نیازی نیست مانع باشه ولی می خوایم تشخیصش بدیم و کنارش باشیم)


Collider.OnTriggerStay برای بررسی ماندن در محدوده(این مورد مورد نردبان بهتر کار می کنه و بهتره به جای OnTriggerEnter استفاده بشه)


Collider.OnTriggerExit برای موردی که می خوایم تشخیص بدیم شی مورد نظر برخوردش با ما قطع شده.


دقت کنید که برای موارد دو بعدی و سه بعدی باید از توابع مربوط استفاده بشه ویلا ممکنه کار نکنه:

Collider2D.OnTriggerStay2D

void OnTriggerStay2D(Collider2D other)

OnTriggerEnter2D

OnTriggerExit2D

و ....


۰ نظر موافقین ۰ مخالفین ۰ ۰۸ بهمن ۹۴ ، ۱۸:۰۷
مدیرکل

دوستان لطفا این برنامه رو شیر کنید برای حمایت از ما روی تبلیغات در بازی کلیک کنید.

https://s.cafebazaar.ir/1/upload/screenshot/gameover.zoodpaz13.jpg

https://s.cafebazaar.ir/1/upload/screenshot/gameover.zoodpaz14.jpg

https://cafebazaar.ir/app/gameover.zoodpaz1/?l=en

۰ نظر موافقین ۰ مخالفین ۰ ۰۷ بهمن ۹۴ ، ۲۰:۵۲
مدیرکل
منبع:gameover.blog.ir

نکته اول:
ابتدا از پنجره ی  build به مسیر Player Settings -> Other Settings -> Device Filter برید.
اگه تنظیم devcie f_il_t_er روی هر دو حالت باشه یعنی both ARM and x86 پس حجم بالاتر می ره ولی در عوض روی هر دو پردازنده ی گوشی های هم x86 و هم ARM بازی نصب خواهد شد و بنابراین صرفا بالابودن حجم دلیل بر بد بودن نیست چون بعضی اوقات حتی لازمه برای اینکه مطمئن بشیم بازیمون روی اکثر گوشی ها اجرا میشه.
http://s7.picofile.com/file/8265980368/hajm_bala_bad_nist.jpg

نکته بعدی:

بعد از build به apk ،در قسمت بالا و سمت راست پنجره ی console لاگ یا نوشته ها روی فلش کوچک پایین بزنید یک گزینه Editor Log رو می بینید.روش بزنید می گه چند درصد مربوط به کدوم بخش هست.

  1. ***Player size statistics***
  2. Level 0 'Assets/Loader.unity' uses 459.0 KB compressed / 1.6 MB uncompressed.
  3. Level 1 'Assets/Game.unity' uses 2.3 MB compressed / 7.8 MB uncompressed.
  4. Total compressed size 2.8 MB. Total uncompressed size 9.4 MB.
  5. Textures 3.9 mb 41.2%
  6. Meshes 2.3 mb 23.9%
  7. Animations 679.1 kb 7.0%
  8. Sounds 0.0 kb 0.0%
  9. Shaders 538.1 kb 5.6%
  10. Other Assets 653.8 kb 6.8%
  11. Levels 147.8 kb 1.5%
  12. Scripts 453.3 kb 4.7%
  13. Included DLLs 136.0 kb 1.4%
  14. File headers 747.4 kb 7.8%
  15. Complete size 9.4 mb 100.0%
  16. Used Assets, sorted by uncompressed size:
  17. 277.1 kb 2.9% Assets/Player/Human.blend
  18. 264.1 kb 2.7% Assets/Player/Orc.blend
  19. 216.1 kb 2.2% Assets/Monsters/Foo.blend
  20. 213.0 kb 2.2% Assets/Dungeon/Dungeon.blend
  21. 170.8 kb 1.8% Assets/Monsters/FooSkin.png
  22. ...

Yes, Unity should make this critical information way more obvious!

Sometimes it's as simple as a texture you have forgotten to downscale, or a model that needs to have Compression turned on (model and/or animation). Sometimes you've inadvertently depended upon an expensive DLL (like XML). Sometimes a package you're using (like Detonator) has a lot of big unused Resources (unused mere assets don't matter).

Note on the above sizes: these are for a WebPlayer; unlike Android and iOS, web builds don't have to include the Player, since the user installs that separately (I suspect that's actually the entirety of your "problem").

http://answers.unity3d.com/questions/153065/file-size-is-far-too-big.html


۱ نظر موافقین ۰ مخالفین ۰ ۰۷ بهمن ۹۴ ، ۰۴:۳۹
مدیرکل

منبع:gameover.blog.ir

چند ثانیه صبر کنید بعدش رد تبلیغ رو بزنید:

http://opizo.com/qsMNRg

۱ نظر موافقین ۰ مخالفین ۰ ۰۷ بهمن ۹۴ ، ۰۳:۳۸
مدیرکل
چند ثانیه صبر کنید بعدش دکمه سبز رد تبلیغ رو بزنید:

http://opizo.com/Ivbs1j



۰ نظر موافقین ۰ مخالفین ۰ ۰۷ بهمن ۹۴ ، ۰۰:۴۵
مدیرکل

منبع:gameover.blog.ir

روش قدیمی(منسوخ):

یک روش سنتی اینه که یک گیم ابجکت تهی یا empty game object بسازیم و دشمن و یک cube با رنگ قرمز رو بندازیم توی زیرشاخش(به عنوان فرزندش).

بعدش این مکعب رو scale کنیم و در مثلا راستای محور x جهانی(تحت زاویه ای که خود دشمن قرار گرفته یا نسبت به مرکز خودش) اونو کم کنیم مثال:

using UnityEngine;
using System.Collections;
//Author:sajjad3011
public class NewBehaviourScript : MonoBehaviour {
     public GameObject navarKhun;
 
 /*     void Start () {
       navarKhun = GameObject.Find("Cube");
       }
*/
    public void btnChangeHeight() {
      navarKhun.gameObject.transform.localScale -= new Vector3(1,0,0);
    }
}
توضیح:
یک بردار ساخت سه بعدی که y و z اش صفر هست و x یک هست و این بردار رو از اسکیل فعلی کم می کنه.
 یعنی فقط ایکس اش به اندازه یکی کم میشه .
بعدش می تونیم چک کنیم اگه localScale.x از صفر کمتر شد دشمن مرده.


روش جدید و بهتر با استفاده از ui:
اما روش جدید در یونیتی 5 استفاده از کانواس هست.
به هر گیم ابجکت دشمن یک کانواس می دیم و توی تنظیمات render mode رو روی  world space می ذاریم. خوبیش اینه که می تونیم کانواس رو اسکیل کنیم و حتی خودش نسبت به زاویه چرخش دشمن چرخش می کنه و تنظیم میشه.
بعدش توی کد می تونیم width و height ایمیج رو تنظیم کنیم.

مثال:
Image im;
im.rectTransform.rect.width=100
همچنین باید اسپرایت یا image خون رو lookat کنیم به دوربین که روش به سمت دوربین باشه.
مثال:
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public Transform target;
    
    void Update() {
    	// Rotate the camera every frame so it keeps looking at the target 
        transform.LookAt(target);
    }
}
دوربین رو باید بدیم به target در inspector تا نوار خون نگاهش به سمت دوربین باشه.
۰ نظر موافقین ۰ مخالفین ۰ ۰۶ بهمن ۹۴ ، ۱۴:۵۹
مدیرکل

منبع:gameover.blog.ir

در قسمت سراسری
public Animator anim;
در قسمت دلخواه کد:
غیر فعال کردن:
anim.enabled=false;
فعال کردن:
anim.enabled=true;
۰ نظر موافقین ۰ مخالفین ۰ ۰۶ بهمن ۹۴ ، ۰۲:۵۹
مدیرکل

منبع:gameover.blog.ir

مسیر Window->Profiler رو طی کنید.

در شکل زیر می بینیم هشتاد درصد پردازش مربوط به animator هست:


http://s6.picofile.com/file/8235348992/profiler.jpg

پس برای بهینه سازی بازی باید سعی کنید فقط در صورت نیاز کامپوننت انیمار رو setActive(true و در غیر اینصورت setActive(false کنید.

۱ نظر موافقین ۰ مخالفین ۰ ۰۶ بهمن ۹۴ ، ۰۲:۳۴
مدیرکل

منبع:gameover.blog.ir

کاربرد:

تایپ خودکار متن در بازی ها:

http://s6.picofile.com/file/8235961600/typeAuto.jpg

اینم مثال:

using UnityEngine;
using System.Collections;
using UnityEngine.UI;

// attach to UI Text component (with the full text already there)

public class UITextTypeWriter.cs : MonoBehaviour 
{

	Text txt;
	string story;

	void Awake () 
	{
		txt = GetComponent<Text> ();
		story = txt.text;
		txt.text = "";

		// TODO: add optional delay when to start
		StartCoroutine ("PlayText");
	}

	IEnumerator PlayText()
	{
		foreach (char c in story) 
		{
			txt.text += c;
			yield return new WaitForSeconds (0.125f);
		}
	}

}
۱ نظر موافقین ۰ مخالفین ۰ ۰۶ بهمن ۹۴ ، ۰۲:۱۰
مدیرکل

منبع:gameover.blog.ir

using System.Xml;
...
            XmlDocument mydoc = new XmlDocument();
            mydoc.Load("www.example.com/file.xml");
            string mypoint = mydoc.GetElementById("mytext").InnerText;
۰ نظر موافقین ۰ مخالفین ۰ ۰۶ بهمن ۹۴ ، ۰۱:۵۱
مدیرکل
منبع:gameover.blog.ir
public static void ClearLog()
         {
             var assembly = Assembly.GetAssembly(typeof(UnityEditor.ActiveEditorTracker));
             var type = assembly.GetType("UnityEditorInternal.LogEntries");
             var method = type.GetMethod("Clear");
             method.Invoke(new object(), null);
         }
نکته:کلمه var در js داریم اما توی سیشارپ هم var  داریم برای مواردی که متغیری رو می خوایم در زمان اجرا پس از مقدار دادن نوعش رو تعیین کنیم.همچنین برای شناخت توابعی که نوشتیم اینا رو یادتون نره باید ضمیمه کنیم:

using System.Reflection;
using UnityEditor;

منبع:
http://answers.unity3d.com/questions/578393/clear-console-through-code-in-development-build.html

۰ نظر موافقین ۱ مخالفین ۰ ۰۶ بهمن ۹۴ ، ۰۰:۳۹
مدیرکل

منبع:gameover.blog.ir

رفتن به مرحله ی بعد پس از برخورد با درب در یونیتی_دقت کنید درب باید تگ door1 داشته باشه و گزینه ی isTrigger فعال باشه و پلیر باید isTrigger حتما غیرفعال باشه.. کد رو بدید به پلیر

برای کلایدرهای سه بعدی:

void OnTirggerEnter ( Collision Other ) {
if ( Other.gameObject.name == "door1"){
 Application.LoadLevel(Application.loadedLevel + 1);
}
}

برای کلایدر های دو بعدی

void OnTriggerEnter2D( Collider2D Other ) {
if (Other.gameObject.name == "door1"){
 Application.LoadLevel(Application.loadedLevel + 1);
}
}

OnTirggerEnter2d هم واسه دو بعدی هست.
Other.gameObject.tag همیشه داد به شرطی که به درب یک تگ(برچسب) بدیم (door1 یا door یا ...)

نکته:دقت کنید در حالت دو بعدی و سه بعدی اگه توابع اشتباه بدید کار نخواهد کرد کدها.

۲ نظر موافقین ۰ مخالفین ۰ ۰۵ بهمن ۹۴ ، ۱۹:۲۷
مدیرکل

منبع:gameover.blog.ir

Occlusion Culling باعث میشه اجسام پشت دوربین رندر نشه و سرعت بازی رو خیلی بالا میبره و باعث کارایی بی نظیری در رندر میشه و حتی برای بازی های اپن ورد  open world هم پاسخگو هست.

--

بعضی اوقات می خوایم فقط صحنه هایی که در محدوده ی دوربین هستن یا توی یک محوطه مکعبی دلخواه هستن رندر بشه فقط، تا سرعت بازی بره بالا یا بهینه تر بشه و پردازش اضافی برای قسمت هایی که پشت دوربین هست جهت رندر انجام نشه. اگه اشتباه نکنم طبق توضیحات سایر دوستان به این کار می گیم Occlusion system .

آموزش فارسی رو می تونید در دو تا فیلم آپارات ببینید :


لینک مستقیم فیلم اول :
http://opizo.com/UyaQH0

لینک مستقیم فیلم دوم :
http://opizo.com/OgVS8z


توضیحات اضافی:

یکی از تکنیک های مهم بهینه سازی بازی های بزرگ و بهبود فریم ریت frame rate در یونیتی و سایر گیم انجین ها:

یکی از تنظیمات occlusion culling و یکی از تنظیمات دیگه گزینه ی near دوربین هست.

near پارامتر نزدیک بودن هست.مثلا اگه بهش عدد 10 بدیم اشیا تا 10 متری رندر میشه و باقی رندر نمیشه مگه اینکه پلیر حرکت کنه و تا مرز ده متر اشیا رندر میشه.

تکنیک دیگه اینه که بیایم خودمون اسکریپت بنویسیم ابتدا آرایه ای بسازیم که کل اشیای صحنه داخلش باشه.(یعنی از نوع GameObject باشه)

سپس Tag هر گیم ابجکت رو چک کنیم اگه غیر از tag زمین و خودمون بود شرط دوم رو اجرا کنیم و اون اینه :

با تابع Vector3.Distance به الگوی


public static float Distance(Vector3 a, Vector3 b);


فاصله ی دوربین رو تا شی رو چک می کنیم.
اگر فاصله کمتر از میزان دلخواه بود گیم ابجکت رو setActive(true یا فعال وگرنه setActive(false یا غیر فعال کنه.
با استفاده از این تکنیک هر چقدر بازی شما بزرگ باشه به شدت افزایش کارایی و بهینه سازی رو خواهیم داشت.
این یکی از حقه های بسیار مهمی هست که اکثر بازی ساز های بزرگ ازش بهره می برن.
با تشکر از رئیس :)



یک آموزش دیگه که از سایت یونیتی گرفتیم و زیپ کردیم روی پیکو فایل از اینجا دانلود کنید:
http://gameover.blog.ir/1394/11/17/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-Occlusion-Culling-Occlusion-Area-%D8%B2%DB%8C%D9%BE-%D8%B4%D8%AF%D9%87-%D8%A7%D8%B2-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A7%D8%B5%D9%84%DB%8C-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C
۰ نظر موافقین ۰ مخالفین ۰ ۰۵ بهمن ۹۴ ، ۱۷:۳۵
مدیرکل

منبع:gameover.blog.ir


VSync در یونتی چیست ؟

۱ نظر موافقین ۰ مخالفین ۰ ۰۵ بهمن ۹۴ ، ۱۶:۱۶
مدیرکل

منبع:gameover.blog.ir

حذف سایه ها و شرطهای اضافه تابع Update و استفاده از FixedUpdate.
cache کردن کلاس ها مثل tranform و ... مثال :

کد :

private Transform _transform;
void Start ()
{
        _transform = this.transform;//cache for optimization
}
استفاده از IEMulator و StartCoroutine.
نکته:بعضی اوقات بهتره انیمیشن ها رو توی یک تابع بذاریم و بعدش StartCoRoutine کنیم اون تابع رو،عوض اینکه بیایم و مستقیم اونو اجرا کنیم.
مثال از اجرا:
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour
{
    IEnumerator WaitAndPrint()
    {
        // suspend execution for 5 seconds
        yield return new WaitForSeconds(5);
        print("WaitAndPrint " + Time.time);
    }
    IEnumerator Start()
    {
        print("Starting " + Time.time);

        // Start function WaitAndPrint as a coroutine
        yield return StartCoroutine("WaitAndPrint");
        print("Done " + Time.time);
    }
}

سعی کنید تکستچر های شما atlas(اتلس) یا دارای ابعادی با توان 2 باشن مثل 8 در 8 یا 8 در 32 یا 32 در 8 یا 16 در 64 یا 128*256 یا 64*64 یا 128*256 یا 512*512 یا 512*256 و ..... .
اگه اتلس نباشه خود یونیتی مجبوره اونو تبدیل به اتلس کنه و یکم پردازش اضافه مصرف میشه.

نکته : سعی کنید مدل های شما دارای مثلثات و پولیگان های کم باشه.

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

نکته بعدی : اشیا رو انتخاب و گزینه static رو در inspector تیک بزنید.

نکته بعدی: نورها رو لایت مپ(lightmap) کنید (تکنیک beast)

نکته بعدی:بعضی وقتا انیمیشن ها رو غیر فعال کنید و به جای تابع آپدیت سعی کنید توی OnTriggerEnter/2d بگید مثلا اگه کاراکتر به دشمن نزدیک شد دشمن انیمیشن بشه و توی OnTriggerExit/2d بگید اگه کاراکتر از محدوده دشمن خارج شد دشمن انیمیشن اش استاپ بشه و ... .

نکته بعدی: وقتی تیر می زنید پس از چند ثانیه سعی کنید تیر رو destroy کنید. اشیای غیر ضروری دیگه هم همونطور.

نکته بعدی: به جای متریال و شیدرها بهتره که از تکستچر های uv map استفاده کنید.

نکته بعدی: استفاده از چند انیماتور توصیه نمیشه و اگه هم استفاده کردید سعی کنید یک الگوریتم زمانبندی بنویسید که هر جا لازم بود یکی را غیر فعال و فقط یکی در هر لحظه فعال باشه مگر در صورت نیاز هر دو رو فعال کنید.

نکته بعد: کلایدرهای بیخود رو حذف یا بهینه کنید(در قسمت add component می تونید چند کلایدر مختلف تایپ کنید و بدید به مدل یا اسپرایتتون...نکته اگه edge colider کار نکرد بعضی اوقات بهتره باکس کلایدر بدید)

نکته بعدی: گزینه ی cast shadow و فقط برای اجسامی که خیلی مهم هستن در سایه گذاری انتخاب کنید و بقیه رو سعی کنید غیر فعال کنید تا بازی بهینه تر بشه.هر جا سایه گذاری ارزش نداشته باشه و سرعت اجرای بازی اولویت داشته باشه بهتره سایه رو غیر فعال کنید با غیر فعال کردن همین cast shadow.


نکته بعدی: نوع شیدر رو بهتره توی inspector روی vertexLit بذاریم. چون پردازش کمتری نیاز داره هر چند کیفیت ممکنه تا حدی بیاد پایین. چون دو نوع تکستچر هست یکی پیکسلی،specular و ... هست که پردازش بیشتری می خواد و زیبایی بیشتری داره و یکی ورتکس هست که پردازش کمتر و زیبایی کمتر داره. شما باید دقت کنید که چه جسمی رو پیکسلی و چه جسمی رو ورتکسی انتخاب کنید. مثلا ساختمان هایی که خیلی دور هستن و لازم نیست که از نزدیک بهشون خیره بشیم رو vertexLit shader بدید.

نکته ی بعدی: اندازه ی بافت تصاویر کوچک بازی که زیاد به چشم نمیان رو کم کنید . مثلا گزینه ی max size رو برای تکستچر آجرها یا اشیای دیگه روی سایز کم تر بذارید تا حدی که قابل تحمل باشه.(برای bumped texture ها هم همینکارو کنید)

نکته ی بعدی: اگه می خواید تمام اجسام رو یه دفعه اپتیمایز کنید به منوی Edit->Project settings->Quality برید و اونجا می تونید تنظیمت دیگه ای انجام بدید مثل اینکه سایه ها رو روی hard بذارید یا حذف کنید. رزولوشن سایه ها و تکستچرها رو می تونید به طور تقریبی تنظیم کنید که روی low باشه.گزینه ی shadow distance رو اگه کم کنید سایه زیاد تا دور دست رندر نمیشه و یکم بهینه تر میشه.گزینه ی texture quality هم بای کم کردن کیفیت بافت تکستچرهای کل بازی هست که اینم می تونه بازی رو بهینه کنه.گزینه ی anisotropic texture هم اگه از کار بندازید جزئیات کم میشه.گزینه ی دیگه anti aliasing هست که لبه های عکس ها رو برامون تنظیم می کنه و اگه کمتر باشه تا یه حدی بهتره.

برای نور پردازی از تکنیک لایت مپ lightmap یا beast استفاده کنید:
http://gameover.blog.ir/1394/04/27/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%AA%DA%A9%D9%86%DB%8C%DA%A9-beast-%D9%88-%D9%86%D9%88%D8%B1%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%DB%8C-lightmap-%D9%88-bake-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C-%D8%A7%D8%B6%D8%A7%D9%81%D9%87-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AA%D8%B9%D8%A7%D8%AF-%D8%A8%DB%8C%D8%B4%D9%85%D8%A7%D8%B1-%D9%86%D9%88%D8%B1
۰ نظر موافقین ۰ مخالفین ۰ ۰۵ بهمن ۹۴ ، ۰۴:۱۶
مدیرکل

منبع :gameover.blog.ir

مثال1:

متغیری از نوع عمومی public می سازیم که باید کامپوننت انیمیشن هم drag کنیم روش در inspector.

روش زیر برای انیمیشن هایی که با انیماتور نمی شه اجرا کرد(انیمیشن های سنتی یا legacy که با نرم افزارهای قدیمی ریگ شده) و حتی انیمیشن های جدید(هر دو ) جواب مید:

public Animation anim;
    void Start() 
    {

            anim.Play("esme animation");
    }


مثال2:

متغیری از نوع خصوصی private می سازیم که کامپوننت انیمیشن رو از طریق کد دریافت می کنیم.

    private Animation anim;
    void Start () 
    {
        anim.GetComponent<Animation> ();
            anim.Play("esme animation");
    }

نکته:

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

[RequireComponent(typeof(Animation))]


نکته مهم: گزینه LEgacy یا سنتی در حالت دو بعدی یافت نمیشه و احتمالا فقط برای حالت سه بعدی در بخش Rig باید تنظیم بشه.(دو بعدی هم بهتره با Animator کار بشه نه Animation)

شاید یکی از دلایل افت فریم و کند شدن بازی های یونیتی اینه که از چند کامپوننت انیمیاتور استفاده کنیم.
پس بهتره بعضی اوقات به جای انیماتورها از کامپوننت انیمیشن استفاده بشه.

ابتدا کاراکتری که می خواید براش انیمیشن های مختلف بسازید انتخاب کنید( از کادر hierarchy(کادر اجزای صحنه))

سپس به منوی window->animation برید و انیمیشنی رو ایجاد کنید(Create new animation clip)

http://s6.picofile.com/file/8235101618/create_animationClip.jpg

http://s6.picofile.com/file/8235101684/create_animationClip2.jpg


سپس کامپوننت animation بدید به کاراکترتون. و size بدید و انیمیشن ها رو بیارید توش:

http://s6.picofile.com/file/8235101942/create_animationClip3.jpg


دستور Crossfade:


سپس از کد زیر الهام بگیرید برای سوئیچ بین انیمیشن ها :(دقت کنید اسم اسکریپت و کلاس سیشارپ ما باید حتما یکسان باشه.در اینجا ExampleClass)

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public Animation anim;
    void Start() {
        anim = GetComponent<Animation>();
    }
    void Update() {
        if (Mathf.Abs(Input.GetAxis("Vertical")) > 0.1F)
            anim.CrossFade("Run");
        else
            anim.CrossFade("Idle");
    }
}

نکته: تابع یا متد CrossFade هم برای کامپوننت Animator کاربرد داره هم کامپوننت Animation.
موفق باشید.

در صورتی که نیاز به بهینه سازی هم دارید این مطلب و بخونید:
http://gameover.blog.ir/1394/11/05/%D8%A8%D8%B1%D8%AE%DB%8C-%D8%A7%D8%B2-%D8%AA%DA%A9%D9%86%DB%8C%DA%A9-%D9%87%D8%A7%DB%8C-%D9%85%D9%88%D8%AB%D8%B1-%D8%A8%D9%87%DB%8C%D9%86%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%A8%D8%A7%D8%B2%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%D8%A7%D9%84%D8%A7%D8%B1%D9%81%D8%AA%D9%86-%D8%B3%D8%B1%D8%B9%D8%AA-%D8%B1%D9%86%D8%AF%D8%B1-%D9%88-%D8%A7%D9%81%D8%B2%D8%A7%DB%8C%D8%B4-%DA%A9%D8%A7%D8%B1%D8%A7%DB%8C%DB%8C-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C

http://gameover.blog.ir/1394/08/11/%DA%A9%D8%AF-%D8%AD%D8%B1%DA%A9%D8%AA-%D9%BE%D8%B1%D8%B4-%D8%AF%D8%A7%D8%A8%D9%84-%D8%AC%D8%A7%D9%85%D9%BE-%D8%B1%D8%A7%D9%87-%D8%B1%D9%81%D8%AA%D9%86-%D8%AF%D9%88-%D8%A8%D8%B9%D8%AF%DB%8C-player-%D8%AF%D8%B1-%DB%8C%D9%88%D9%86%DB%8C%D8%AA%DB%8C-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-Easy-touch-version-3-%D8%B3%DB%8C%D8%B4%D8%A7%D8%B1%D9%BE


۰ نظر موافقین ۰ مخالفین ۰ ۰۴ بهمن ۹۴ ، ۱۸:۰۶
مدیرکل
منبع:gameover.blog.ir
اسکریپت زیر رو بدید به دوربین و سپس یک پریفب(یک گیم ابجکت که با ماوس قبلا از توی کادر hierarchy کشیده باشید توی کادر project) رو بندازید روی متغیر prefab از وروی اسکریپت در inspector.
using UnityEngine;
using System.Collections;

public class create : MonoBehaviour {
	Ray ray;
	RaycastHit hit;
	public GameObject prefab;
	void Update () {		
		ray=Camera.main.ScreenPointToRay(Input.mousePosition);		
		if(Physics.Raycast(ray,out hit)){			
			if(Input.GetKey(KeyCode.Mouse0))
			{
				GameObject obj=Instantiate(prefab,new Vector3(hit.point.x,hit.point.y,hit.point.z), Quaternion.identity) as GameObject;
				
			}			
		}

	}
}
نکته :
بعد از اجرا حتما باید توی صحنه یک Plane یا یک گیم ابجکت حاقل موجود باشه تا وقتی روش کلیک کردیم یک نمونه از پریفب ما ایجاد بشه.
پریفب هم گفتیم نمونه ای از گیم ابجکت هست که قبلا توی صحنه بود و بعدش کشیدیم توی کاد پروژه و سپس اونو حذف کردیم(حذف هم دلخواست)
۰ نظر موافقین ۰ مخالفین ۰ ۰۳ بهمن ۹۴ ، ۰۱:۱۲
مدیرکل
۳ نظر موافقین ۰ مخالفین ۰ ۰۱ بهمن ۹۴ ، ۰۹:۱۰
مدیرکل