Unity如何从与另一个对象相撞的对象中获取位置?

时间:2018-02-06 05:45:18

标签: c# unity3d position collider

目前我试图让T方格用我已创建的线锁定其位置,但我不知道如何获得一条线的x位置。现在,我的T square能够检测到它与线条发生冲突。这是我目前的代码。

void LockPostion(float x)
{
    gObjTmp.transform.position = new Vector3 (x, this.transform.position.y, this.transform.position.z);
}

void OnCollisionEnter(Collision col)
{
    if (col.gameObject.tag == "Lines") 
    {
        Debug.Log ("Collision with line");
        LockPostion (minlockXPos);
    } 

}

1 个答案:

答案 0 :(得分:1)

就像您使用this.transform.position获取脚本所附加的this对象的位置一样,col.transform.position应该用于获取从碰撞函数返回的另一个Object的位置或col.transform.position.x仅适用于x轴。

void OnCollisionEnter(Collision col)
{
    if (col.gameObject.tag == "Lines")
    {
        Vector3 linePos = col.transform.position;
        float linePosX = col.transform.position.x;

        Debug.Log("Collision with line");
        LockPostion(linePosX);
    }
}