0

我想像玩家运动“鲸鱼踪迹”游戏一样以椭圆运动移动刚体。我所做的是:

  1. 使用 scale(1.5,0.5,0.1) 创建了一个名为“Player”的立方体
  2. 创建了另一个名为Pointscale(0.1,0.1,0.1) 的小立方体,其位置与 x 相同,Player但多 0.5 (因此现在玩家看起来像一个 2D 矩形,其上的一个点位于矩形中心的右侧)。
  3. 然后我在两个身体之间创建了一个固定关节
  4. 现在我在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视频中看到“循环运动”的视频。提前致谢。

4

1 回答 1

0

我自己找到了解决方案。要实现椭圆运动,您必须创建两个实体并通过将它们水平放置在彼此旁边将它们与关节连接。然后您必须不断地在 x 方向和 Y 方向上施加力,仅当屏幕被触摸在第一个身体上。

并且在向上移动时降低 X 速度很重要,然后你会得到椭圆旋转。

这对我来说可以。

谢谢, 阿肖库玛 M

于 2013-02-25T04:50:56.033 回答