我想像玩家运动“鲸鱼踪迹”游戏一样以椭圆运动移动刚体。我所做的是:
- 使用 scale(1.5,0.5,0.1) 创建了一个名为“Player”的立方体
- 创建了另一个名为
Point
scale(0.1,0.1,0.1) 的小立方体,其位置与 x 相同,Player
但多 0.5 (因此现在玩家看起来像一个 2D 矩形,其上的一个点位于矩形中心的右侧)。 - 然后我在两个身体之间创建了一个固定关节
现在我在Point位置的玩家上申请如下,
float mfAngle = 0.0f; void update() { mfAngle=transform.eulerAngles.z; mfAngle=mfAngle%360; if(mfAngle>=0 && mfAngle<90) { mfXforce=-0.1f; mfYforce=0.1f; } if(mfAngle>=90 && mfAngle<180) { mfXforce=-0.1f; mfYforce=0.1f; } if(mfAngle>=180 && mfAngle<270) { mfXforce=-0.1f; mfYforce=-0.1f; } if(mfAngle>=270 && mfAngle<360) { mfXforce=0.1f; mfYforce=-0.1f; } Debug.Log("Angle ="+mfAngle+"X = "+mfXforce+"Y = "+mfYforce); Vector3 pointPos=_goPointObject.transform.position; transform.rigidbody.AddForceAtPosition(new Vector3(mfXforce,mfYforce,0),pointPos); }
但它不能正常工作。我只是向上移动,然后转向不同方向移动。如果有人知道如何通过施加力以椭圆运动移动刚体,请给我一个解决方案。(我想像鲸鱼一样使用它追踪游戏你可以在这个http://www.youtube.com/watch?v=wwr6c2Ws1yI视频中看到“循环运动”的视频。提前致谢。