我一棟齒輪VR APP,我想我的性格縮減在進入箱撞機區,我可以通過它的規模了所有的突然使用transform.localScale = new Vector3(0.3F,0.3F,0.3F);但我想它做smoothly.Dont KNW爲什麼它不拿起這個線性插值線項目可以在任何一個helpp的原因???我標記我的盒子對撞機(立方體「瑪尼」)還有一兩件事,我OnTriggerExit線性插值一個也沒有打電話。Lerp.localScale不工作OnTriggerEnter,Unity5.3.3,齒輪VR應用開發
#pragma strict
var newScale : Vector3 = Vector3 (0.1,0.1,0.1);
var Grow : Vector3 = Vector3 (1,1,1);
var speed : float =2.0;
function Start() {
transform.localScale = new Vector3(1F,1F,1F);
}
function Update() {
}
function OnTriggerEnter (info : Collider) {
if(info.tag == "Mani") {
transform.localScale =Vector3.Lerp(transform.localScale, newScale, speed * Time.deltaTime/2);
//transform.localScale = new Vector3(0.3F,0.3F,0.3F);
Debug.Log("Player hit new cube");
}
}
function OnTriggerExit (Col : Collider) {
if(Col.tag == "Mani") {
// transform.localScale = new Vector3(transform.localScale.x, 1F, transform.localScale.y);
transform.localScale =Vector3.Lerp(newScale, Grow, speed * Time.deltaTime); //transform.localScale = new Vector3(1F,1F,1F); Debug.Log("Player left cube");
}
}
三江源洙多YES,有一個笨錯誤,一行代碼放置在礦井開始函數不會讓lerp函數去完成它的工作。函數Start(){//transform.localScale = new Vector3(1F,1F,1F); //這是愚蠢的行。 // -------------------------- –
現在我的ontriggerEnter和Exit r工作,但是當我激活On觸發器退出代碼行時,我的OVR字符開始在觸發區內晃動// ------函數OnTriggerStay(info:Collider){if(info.tag ==「Mani1」){transform.localScale = Vector3.Lerp(transform.localScale,newScale,speed * Time.deltaTime); //transform.localScale =新的Vector3(0.9F,0.9F,0.9F); Debug.Log(「Player Mani1」); } } // ----------- function OnTriggerExit(info:Collider){if(info.tag ==「Mani1」){transform.localScale = Vector3.Lerp(transform。 localScale,Grow,speed * Time.deltaTime); } } –
你需要增加T(線性插值的第三個參數)。當你縮放時,它應該從0到1。在第一幀t應該是0,在下一個你通過'(1 /秒)* TimeDeltaTime'增加它,並且你繼續增加每個後續幀,直到你達到1爲止。http://docs.unity3d.com/ScriptReference/ Vector3.Lerp.html也許這個教程可以幫助你http://www.blueraja.com/blog/404/how-to-use-unity-3ds-linear-interpolation-vector3-lerp-correctly – yes