Collider Trigger 碰撞
目的:测试碰撞时触发的具体情况环境:建立两个Cube用于碰撞,对Cube添加刚体属性并取消重力。有必要的话也可以选择冻结或更改collider的size来增加结果的可见性。
脚本:
#pragma strict
var bool:boolean = true;
var enter_position:Vector3; // 用于记录OnTriggerEnter响应时刻obj的位置
function Update () {
if(bool && Input.GetKey(KeyCode.A))
this.transform.Translate(0,0,Time.deltaTime);
if(Input.GetKey(KeyCode.D))
this.transform.Translate(0,0,-Time.deltaTime);
if(Input.GetKey(KeyCode.P))
this.transform.position = enter_position;// 用于检测enter_position记录的位置
}
function OnTriggerEnter(){
enter_position = this.transform.position;
bool = false;
Debug.Log("TriggerEnter");
}
function OnTriggerStay(){
//this.transform.position = enter_position; // 无法实现矫正的设想
Debug.Log("TriggerStay");
}
结果:
file:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\781858308\QQ\WinTemp\RichOle\)$7GXZT300_SLOPG~T
问题:触发器并没有停在最表面;enter_position也没有记录下触发器停在最表面时刻的位置;多次进行结果有差别,但性质一样。
求教:1、出现这种现象的具体原因;2、有无解决办法;
好帖就是要顶 顶顶多好 难得一见的好帖 说的非常好 很好哦 很不错 楼主是超人 好帖就是要顶 顶顶多好