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

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
--
گروه قدیم ما promakers.ir یا پرومیکرز بود که بالای هزار اموزش توش ساخته بودم به اسم sajjad3011 ولی حیف ادمین سایتش عوض کرد
حالا سوالی بود کاری بود این شمارمه

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

---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته
دوست داشتید شماره بذارید تو واتساپ یا ایتا یا .... گروه بزنیم.
09358077198

بایگانی
پیوندها

منبع :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

}


سوالی بود بپرسید.

نظرات (۳)

آقا ممنون از مطالب پر بارت...
پاسخ:
ممنون شما لطف دارید عزیز دل.
سلام 

خیلی سایت خوبی دارید ، حیفه ، بیشتر تبلیغش کنید !

می خواستم بدونم چجوری متوقفش کنیم (همون تایمرو) ؟
پاسخ:

کد توقف pause بازی در یونیتی:


Time.timeScale=0; 
کد resume در یونیتی 5:

Time.timeScale=1; 
با سلام

ممنون از جوابتون

دو سوال 

اول اینکه وقتی بازیو متوقف می کنم دیگه نمی تونم یک متن بندازم رو صفحه که چشمک بزنه !

دوم :
 چجوری  می تونم کاری کنم یک تایمر داشته باشم که وقتی از بازی بیرون میایم هنوز هم در حال شمارش باشه !

مثلا بگیم نیم ساعت بعد یک جایزه می گیرید و اگه تو بازی نبودیم یک آلارم بده جایزه واریز شد !


خیلی ممنون
پاسخ:
سلام

قسمت اول رو نفهمیدم. چرا نشه؟ انیمیشن بدید باید بشه.

باید با cron job تحت php کار کنید و یک فایل php بذارید روی هاستی که php رو ساپورت بده و از طریق کلاس www فایل txt تولید شده رو دانلود کنید و تو یونیتی بخونید.
چون وقتی از باز می رید بیرون یه سیستمی باید باشه که روشن و آنلاین باشه...

اما روش بسیار ساده ی دیگه ای هم هست :
موقع توقف بازی زمان رو با PlayerPrefs  سیو کنید و بعد از ورود به بازی زمان فعلی رو ا زمان قبلی کم کنید و طبق اختلاف و نسبتی فرضی یه فرمول برای ادامه شمارش طراحی کنید
سوال اضافه دارید بیاید گروه.
@gameoverblog

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی