我在Unity中使用LineRenderer表示RayCast,它看起来像一束激光。我希望这个激光能够移动与之碰撞的物体,使得物体跟随Raycast的碰撞点
我的代码不起作用,因为我将这些游戏对象移动到了
这是我附加在Laser GameObject上的脚本中的更新函数。有人知道我如何修复我的代码,使物体与hit.point一起移动吗?
hit.point
移动。我的代码不起作用,因为我将这些游戏对象移动到了
hit.point
,这导致物体向Raycast的起始点移动,因为新的hit.point
会被计算出来,因为物体正在向hit.point
移动。我理解为什么会发生这种情况,但我不确定如何让物体跟随Raycast移动,但不影响新的hit.point。这是我附加在Laser GameObject上的脚本中的更新函数。有人知道我如何修复我的代码,使物体与hit.point一起移动吗?
void Update()
{
Vector3 target = calculateDeltaVector();
lr.SetPosition(0, palm.transform.position);
RaycastHit hit;
if (Physics.Raycast(palm.transform.position, target , out hit))
{
if (hit.collider)
{
lr.SetPosition(1, hit.point);
if (hit.transform.gameObject.tag == "Chair")
{
GameObject chair = hit.transform.gameObject;
// !!! move object to hit point, problem HERE
chair.transform.position = hit.point;
hitLock = false;
}
}
}
else lr.SetPosition(1, target * 50);
}
chair.transform.parent = hit.transform;
这行代码的作用是什么吗? - TechnoRazor