コード例 #1
0
            public void NewRigidStateTest()
            {
                Rigid r = new Rigid (1, new Matrix (1, 1, 1));
                RigidState rs = new RigidState (r);

                Assert.AreEqual (0, rs.CenterOfMass.X);
                Assert.AreEqual (0, rs.CenterOfMass.Y);
                Assert.AreEqual (0, rs.CenterOfMass.Z);
            }
コード例 #2
0
            public void SimulateMovementTest()
            {
                Rigid r = new Rigid (1, new Matrix (1, 1, 1));
                RigidState rs = new RigidState (r);
                rs.LinearAcceleration = new Vector (1, 0, 0);
                rs.SimulateMovement (1, new Euler ());

                Assert.AreEqual (1, rs.CenterOfMass.X, 0.01);
                Assert.AreEqual (0, rs.CenterOfMass.Y, 0.01);
                Assert.AreEqual (0, rs.CenterOfMass.Z, 0.01);
            }
コード例 #3
0
    public void SetRecordedInfo(string rigidBodyName, Vector3 pos, Quaternion rot)
    {
        if (initialState == null)
        {
            return;
        }
        int num = 0;

        while (true)
        {
            if (num < initialState.Length)
            {
                string gameObjectPath = GetGameObjectPath(initialState[num].rigid.transform);
                if (gameObjectPath == rigidBodyName)
                {
                    break;
                }
                num++;
                continue;
            }
            return;
        }
        RigidState rigidState = initialState[num];

        rigidState.recorded         = true;
        rigidState.recordedPosition = pos;
        rigidState.recordedRotation = rot;
        initialState[num]           = rigidState;
        rigidState.rigid.MovePosition(pos);
        rigidState.rigid.MoveRotation(rot);
        rigidState.rigid.transform.position = pos;
        rigidState.rigid.transform.rotation = rot;
        Rigidbody rigid = rigidState.rigid;
        Vector3   zero  = Vector3.zero;

        rigidState.rigid.velocity = zero;
        rigid.angularVelocity     = zero;
        rigidState.rigid.Sleep();
    }
コード例 #4
0
            /// <summary>
            /// Creates for each <see cref="Rigid"/> in the World a <see cref="RigidState"/>
            /// </summary>
            public void InitState()
            {
                foreach (IRigid r in World.Rigids) {
                    RigidStates [r] = new RigidState (r);
                }

                UpdateStateForces ();
            }