gpt4 book ai didi

unity3d - 使用 RayCast 命中位置移动 GameObject 导致对象向 Raycast 开始位置移动

转载 作者:行者123 更新时间:2023-12-04 01:52:50 25 4
gpt4 key购买 nike

我在 Unity 中用 LineRenderer 表示 RayCast,所以它看起来像一个激光。我希望这台激光移动它碰撞的物体,以便物体跟随 hit.point的 Raycast 命中。

我的代码不起作用,因为我将这些游戏对象移动到 hit.point ,这会导致对象朝向 Raycast 的起点,因为新的 hit.point由于对象正在移动到 hit.point 而被计算.我明白为什么会发生这种情况,但我不确定如何让物体随着 Raycast 移动,但不会影响新的 hit.point。

这是附加到我的激光游戏对象的脚本中的更新函数。 有谁知道我如何修复我的代码以便对象随着 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);
}

最佳答案

在 Unity Inspector 中,您可以选择对象并将图层更改为“2:忽略光线转换”,这将使光线转换忽略该对象并通过它。

关于unity3d - 使用 RayCast 命中位置移动 GameObject 导致对象向 Raycast 开始位置移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52105984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com