«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
ساخت تایمر در یونیتی 5 :: گیم اور

گیم اور


خصوصی نظر نذارید نمی تونیم جواب بدیم.

عضو کانال تلگرام ما بشید توش گروه هم می گیم

لینک کانال خصوصی گیم اور :

https://t.me/gameoverblog

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

۲ مطلب با کلمه‌ی کلیدی «ساخت تایمر در یونیتی 5» ثبت شده است

منبع:GAMEOVER.BLOG.IR

using UnityEngine;
using System.Collections;
//csharp code
//Author:Sajjad3011
public class timer1 : MonoBehaviour {
    public Sprite[] sprArr=new Sprite[4];//set it in the inspector
    SpriteRenderer sprRndr1;
    private int i=0;
    // Use this for initialization
    void Start () {
        sprRndr1=this.gameObject.GetComponent<SpriteRenderer> ();//access to component SpriteRenderer
        InvokeRepeating("f1", 1.0f,1.0f);//call function f1() after 1 second


    }

    void  f1()
    {
        Debug.Log (i);
                sprRndr1.sprite = sprArr[i];
        i++;
        if (i > 3) i = 0;

    }//f1

}

بعد از اختصاص اسکریپت به یک 2d object->new sprite باید چهار تا عکس رو بندازید روی متغیرهای public که توی کد ساختیم(در inspector ظاهر میشه که به صورت ورودی مقدار می گیرن)
۰ نظر موافقین ۰ مخالفین ۰ ۲۳ آبان ۹۴ ، ۱۵:۱۹
مدیرکل

منبع :gameover.blog.ir

شکل کلی :

public void InvokeRepeating(string methodName, float time, float repeatRate);

توضیح :

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

دومین پارامتر زمان انتظار برای اولین شروع بر حسب ثانیه هست.

سومین پارامتر هم زمان تاخیر بین هر فراخوانی هست.

مثال: کد زیر بلافاصله(بعد از صفر ثانیه انتظار) تابع دلخواه رو اجرا می کنه و هر 1 ثانیه دوباره اونو اجرا می کنه:

InvokeRepeating("YOUR FUNCTION NAME", 0, 1.0f);

دقت کنید که حتما باید توی Start بذاریدش نه update. مثال :
void Start () {
InvokeRepeating("f1", 1.0f,1.0f);//call function f1() every 1 second
}
در مثال فوق تابع f1 هر ثانیه یکبار فراخوانی میشه.

تابع Invoke هم هست . این تابع برای اجرای یک تابع دیگه فقط یکبار بدون تکرار بکار می ره.
مثال:
 اگه بخوایم 2  ثانیه صبر کنیم بعدش تابعی رو اجرا کنیم این کد رو اجرا می کنیم:
Invoke("YOUR FUNCTION NAME", 2);

به جای YOUR FUNCTION NAME اسم تابعی که ساختیم رو می ذاریم.
دقت کنید که حتما باید توی Start بذاریدش نه update.

یه مثال دیگه میزنم:
اسکریپت سیشارپ زیر باعث میشه هر ثانیه یکی از 4 اسپرایت ورودی روی اسپرایت شما تنظیم بشه(یادتون نره 4 متغیر public که تعریف می کنیم در زیر، در inspector ظاهر خواهند شد و باید عکس اسپرایت ها رو بکشیم بندازیم روشون. بعد از اختصاص اسکریپت به new sprite ساخته شده در یونیتی 5):
using UnityEngine;
using System.Collections;
//Author:Sajjad3011
public class timer1 : MonoBehaviour {
	public Sprite[] sprArr=new Sprite[4];//set it in the inspector
	SpriteRenderer sprRndr1;
	private int i=0;
	// Use this for initialization
	void Start () {
		sprRndr1=this.gameObject.GetComponent<SpriteRenderer> ();//access to component SpriteRenderer
		InvokeRepeating("f1", 1.0f,1.0f);//call function f1() after 1 second


	}
	// Update is called once per frame
	void   Update () {

	}
	void  f1()
	{
		Debug.Log (i);
		sprRndr1.sprite = sprArr[i];
		i++;
		if (i > 3) i = 0;

	}//f1

}


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