跳到主要內容

你可能不知道的超冷門Unity功能#1 WaitForSeconds

遇此行時暫停,直到指定時間後才繼續執行下一行程式碼。
其實我根本沒用過幾次,不知道各位大大都怎麼使用它?

關鍵句 :

yield WaitForSeconds( 5 );

範例 :

using UnityEngine;
using System.Collections;

public class WaitForSecondsExample : MonoBehaviour {
    
    void Start() {
        StartCoroutine(Example());
    }
    
    IEnumerator Example() {
        print(Time.time);
        yield return new WaitForSeconds(5);
        print(Time.time);
    }
}

影片操作 :

留言

  1. 之前有做過一個定期抓廣告頁面的AdPlugin時有用到。
    那時遇到一個問題,unity原本的WaitForSecond好像會因為timescale受影響。
    後來改用這個方式解決:
    http://answers.unity3d.com/questions/301868/yield-waitforseconds-outside-of-timescale.html
    用法跟原本的差不多。

    回覆刪除

張貼留言

這個網誌中的熱門文章

阿葉的Unity3D密技「血條」

嘿,其實血條大家多半早會了,但是應觀眾要求還是把這教學Run一遍才行。這次我們用的是新的UI系統「UGUI」他跟「NGUI」很像,是Unity公司挖角「NGUI」團隊到進去開發的系統,使用方便又省效能,個人覺得以後Unity遊戲大多都會使用這個系統。 這次介紹了三種方法實現血條,使用「Mask」「FillAmount」兩種常見的遮罩方式,基本涵蓋了上市面上大多血條作法,如果各位夥伴還有突發奇想新的血條歡迎到社團留言。 操作影片

你可能不知道的超冷門Unity功能#3 OnWillRenderObject

OnWillRenderObject這個東西能判定該物件有沒有被攝影機看到,可以拿來判定一個東西是否在視野內。 關鍵句 : void OnWillRenderObject() { } 範例 : using UnityEngine; using System.Collections; public class ExampleClass1 : MonoBehaviour { private ParticleSystem ps; void Start() { ps = GetComponent<ParticleSystem>(); } void OnWillRenderObject() { if (Camera.current.name == "MiniMapcam") ps.enableEmission = true; else ps.enableEmission = false; } } PS : 使用這個範例記得要把攝影機取名為 MiniMapcam 才有效果喔 影片操作 :