跳到主要內容

你可能不知道的超冷門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 才有效果喔

影片操作 :

留言

這個網誌中的熱門文章

你可能不知道的超冷門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 ); } } 影片操作 :

你可能不知道的超冷門Unity功能#2 NavMeshAgent.steeringTarget

在使用NavMeshAgent尋路系統的時候,內建豐富的位移效果常讓人感到頭痛。其實NavMeshAgent有一項鮮少有人知道的功能允許使用者自己取用下一個座標點,省去許多控制複雜參數的麻煩。 關鍵句 : .steeringTarget 範例 : using UnityEngine; using System.Collections; public class PlayCtrl : MonoBehaviour { private NavMeshAgent agent;//尋路系統 public Transform In;//最終目標 private Vector3 Look_pos;//中途目標 void Start () { agent = GetComponent<NavMeshAgent>(); } void Update () { agent.destination = In.position; Look_posa = agent.steeringTarget; } } 影片操作 :