饮梦 发表于 2014-11-12 17:20

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");

}
结果:


问题:触发器并没有停在最表面;enter_position也没有记录下触发器停在最表面时刻的位置;多次进行结果有差别,但性质一样。
求教:1、出现这种现象的具体原因;2、有无解决办法;

raomuqi@qq.com 发表于 2014-11-14 18:22

可以把问题提炼下,最好不需要别人花时间去猜测你描述的内容

饮梦 发表于 2014-11-16 09:46

raomuqi@qq.com 发表于 2014-11-14 18:22 static/image/common/back.gif
可以把问题提炼下,最好不需要别人花时间去猜测你描述的内容

我需要的是有耐心的人来回答,而且这个问题相信多数人都遇到过.你如果能够阐释的清楚这种现象的底层原因,我依旧会感谢你!

安之若梦 发表于 2017-3-27 13:53

真心顶

houge 发表于 2017-3-27 14:13

难得一见的好帖

liukeping1989 发表于 2017-3-27 14:34

说的非常好

liukeping1989 发表于 2017-3-27 14:29

很好哦

yuphon 发表于 2017-3-27 14:18

LZ真是人才

dadalan 发表于 2017-5-29 10:51

好帖就是要顶

yeshushu 发表于 2017-5-29 10:24

真心顶
页: [1]
查看完整版本: Collider Trigger 碰撞