GetMoveDir3D() public method

public GetMoveDir3D ( ) : ScriptRuntime.Vector3
return ScriptRuntime.Vector3
 static public int GetMoveDir3D(IntPtr l)
 {
     try {
         GameFramework.MovementStateInfo self = (GameFramework.MovementStateInfo)checkSelf(l);
         var ret = self.GetMoveDir3D();
         pushValue(l, true);
         pushValue(l, ret);
         return(2);
     }
     catch (Exception e) {
         return(error(l, e));
     }
 }
Exemplo n.º 2
0
        private void SyncMovement()
        {
            if (null != m_Entity && null != m_Actor)
            {
                float             curTime = Time.time;
                MovementStateInfo msi     = m_Entity.GetMovementStateInfo();
                if (msi.IsMoving)
                {
                    if (m_LastSyncTime + c_SyncInterval <= curTime)
                    {
                        m_LastSyncTime = curTime;
                        if (m_Entity.IsServerEntity)
                        {
                            Transform             t   = m_Actor.transform;
                            ScriptRuntime.Vector3 dir = msi.GetMoveDir3D();
                            Vector3 pos = t.position + new Vector3(dir.X, 0, dir.Z) * 8.0f * c_SyncInterval;
                        }
                    }

                    if (GlobalVariables.Instance.IsDebug)
                    {
                        Utility.EventSystem.Publish("ui_actor_name", "ui", m_Entity.GetId(), string.Format("{0}({1}):c({2},{3})", m_Entity.GetName(), m_Entity.GetId(), msi.PositionX, msi.PositionZ));
                    }

                    if (m_Entity.GetId() != PluginFramework.Instance.LeaderID)
                    {
                        if (Geometry.DistanceSquare(msi.GetPosition3D(), msi.TargetPosition) > 0.625f)
                        {
                            MoveTo(msi.TargetPosition.X, msi.TargetPosition.Y, msi.TargetPosition.Z);
                        }
                        else
                        {
                            msi.IsMoving = false;
                            StopMove();
                        }
                    }
                }
                else
                {
                    if (GlobalVariables.Instance.IsDebug)
                    {
                        Utility.EventSystem.Publish("ui_actor_name", "ui", m_Entity.GetId(), string.Format("{0}({1}):c({2},{3})", m_Entity.GetName(), m_Entity.GetId(), msi.PositionX, msi.PositionZ));
                    }
                }
            }
        }