如何基于旋转另一个移动对象

时间:2020-01-02 19:48:35

标签: c# .net unity3d virtual-reality

我的VR项目遇到问题。我正在尝试根据另一个对象的旋转来移动一个对象,而第一个对象只能在某种边界内移动。我正在使用raycast检测和控制这些对象。两者都应沿x方向移动。

enter image description here

1-我旋转的对象
2-应该移动的物体
有小费吗?预先感谢!

1 个答案:

答案 0 :(得分:0)

这看起来像一台车床,所以我假设您想在旋转砂轮时沿一个轴移动刀架。 您想“链接”它们,所以我要做的是使用一种也可以移动刀架的方法来旋转轮子。 试试这个:

public float ratio = 1.0f;
public GameObject wheel;
public GameObject tool;

public void RotateWheel(float amount)
{
     wheel.transform.Rotate(Vector3.forward * amount);
     tool.transform.Translate(Vector3.left * amount * ratio); 
}

请注意以下几点:

  • 金额以度数形式传递。
  • 比率是车轮之间的比率 旋转和工具平移。角度为1时,工具移动 1个单位随意调整。我假设你的方向 基于模型的运动部件。如果它们不能按预期工作,请尝试更改矢量方向。