如何使用对象的本地枢轴投射Ray?

时间:2016-11-17 00:37:44

标签: c# unity3d

如何从物体的位置向X局部枢轴箭头的另一个方向投射光线,就像我在屏幕截图中用绿色箭头显示的那样?我想使用本地枢轴点,因为如果我旋转平铺我想要雷也旋转。

enter image description here

RaycastHit hit;

if (Physics.Raycast(transform.position, /* ? */, out hit, maxRayDis)) {

}

我尝试了这个,但它似乎不起作用。

Vector3 testVec = new Vector3 (transform.localPosition.x, 0, 0);

Debug.DrawLine (transform.position, testVec, Color.green);
if (Physics.Raycast(transform.position, testVec, out hit, maxRayDis)) {

}

2 个答案:

答案 0 :(得分:0)

你应该设置:

testVec = -transform.right;

答案 1 :(得分:0)

你错过了将本地矢量转换为世界空间。您的代码应该像这样修改:

Vector3 testVec = transform.TransformVector(new Vector3 (transform.localPosition.x, 0, 0));

Debug.DrawLine (transform.position, testVec, Color.green);
if (Physics.Raycast(transform.position, testVec, out hit, maxRayDis)) {

}