需求如下:設定2個物體a和b,需要在a運動到指定位置后觸發b開始運動,我覺得應該在指定位置再設定一個觸發物體c,但是現在觸發腳本不知道怎么寫,主要是不知道需要賦給a還是b。我的理解的觸發函式寫在a的腳本中,但是怎么在觸發事件中將b的運動作為結果?
不知道有沒有表達清楚,希望各路大神指教,
下面是a的代碼片段,觸發事件是一個bool值的變化,但是怎么在b中將這個布林值的變化作為開始運動的條件?
void Update()
{
//transform.position = new Vector3(Mathf.Lerp(-v * Time.time + 82.5f, -v * Time.time + 82.5f, Time.time), 0.5f, 0);
//使用鍵盤控制物體運動,只在x軸方向運動
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
Vector3 move = new Vector3(x ,0.5f,z);
rigidbody.AddForce(move * maxSpeed);
}
private void OnTriggerEnter(Collider other)
{
if (other .gameObject .CompareTag ("pick"))
{
flag = false ;
}
}
uj5u.com熱心網友回復:
物體A 掛載腳本AScript 代碼中只撰寫按下鍵盤后物體A運動函式物體B 掛載腳本BScript 代碼中只撰寫物體B的運動函式
物體C(即觸發器) 掛載腳本CScript 代碼中實作觸發函式,OnTriggerEnter,判斷相接觸的物體是不是物體A,是A的話呼叫腳本BScript的運動函式
uj5u.com熱心網友回復:
求帖主采納,拜托了。哪里不清楚再問我就行。uj5u.com熱心網友回復:
謝謝,但還有問題,我怎么在cscript中呼叫bscript中的函式?uj5u.com熱心網友回復:
https://www.jianshu.com/p/29205af886bfuj5u.com熱心網友回復:
第三種:GameObject.Find("腳本所在物體名").GetComponent<腳本名>().函式名();此種方法只可以呼叫public型別函式uj5u.com熱心網友回復:
不同腳本之間互相呼叫算是很基礎的知識,你可以找個視頻課程看一看轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/15618.html
標籤:Unity3D
上一篇:烘焙單獨一個場景貼圖時,怎樣使其他場景陰影也能影響到該場景
下一篇:游戲沒版號怎么辦
