예제 #1
0
    public void OnEntityChanged(NEntity nEntity)
    {
        //Debug.LogFormat("Postion{0}", GameObjectTool.LogicToWorld(nEntity.Position));
        this.transform.position = GameObjectTool.LogicToWorld(nEntity.Position);

        this.transform.rotation = Quaternion.Euler((GameObjectTool.LogicToWorld(nEntity.Direction)));
    }
예제 #2
0
 public Entity(Vector3Int pos, Vector3Int dir)
 {
     this.entityData           = new NEntity();
     this.entityData.Position  = pos;
     this.entityData.Direction = dir;
     this.SetEntityData(this.entityData);
 }
예제 #3
0
 public Entity(Vector3Int pos, Vector3Int dir)
 {
     Console.WriteLine("=================pos = {0} dir = {1}", pos.ToString(), dir.ToString());
     this.entityData           = new NEntity();
     this.entityData.Position  = pos;
     this.entityData.Direction = dir;
     this.SetEntityData(this.entityData);
 }
예제 #4
0
 public void RemoveEntiy(NEntity nentity)
 {
     this.entities.Remove(nentity.Id);
     if (notifies.ContainsKey(nentity.Id))
     {
         notifies[nentity.Id].OnEntityRemoved();
         notifies.Remove(nentity.Id);
     }
 }
예제 #5
0
 public void RemoveEntity(NEntity entity)
 {
     entities.Remove(entity.Id);
     if (notifiers.ContainsKey(entity.Id))
     {
         notifiers[entity.Id].OnEntityRemoved();
         notifiers.Remove(entity.Id);
     }
 }
예제 #6
0
        public void MapEntitySyncRequst(EntityEvent entityEvent, NEntity nEntity)
        {
            NetMessage message = new NetMessage();

            message.Request = new NetMessageRequest();
            message.Request.mapEntitySync                   = new MapEntitySyncRequest();
            message.Request.mapEntitySync.entitySync        = new NEntitySync();
            message.Request.mapEntitySync.entitySync.Id     = nEntity.Id;
            message.Request.mapEntitySync.entitySync.Event  = entityEvent;
            message.Request.mapEntitySync.entitySync.Entity = nEntity;
            NetClient.Instance.SendMessage(message);
        }
예제 #7
0
    public void SendEntitySync(NEntity entity, EntityEvent ev)
    {
        NetMessage message = new NetMessage();

        message.Request = new NetMessageRequest();
        message.Request.mapEntitySync            = new MapEntitySyncRequest();
        message.Request.mapEntitySync.entitySync = new NEntitySync()
        {
            Id     = entity.Id,
            Entity = entity,
            Event  = ev
        };

        NetClient.Instance.SendMessage(message);
    }
예제 #8
0
        public void SendEntitySync(EntityEvent entityEvent, NEntity entity)
        {
            //Debug.LogFormat("SendEntitySync:{0},{1}", entityEvent, entity.String());
            NetMessage message = new NetMessage();

            message.Request = new NetMessageRequest();
            message.Request.mapEntitySync            = new MapEntitySyncRequest();
            message.Request.mapEntitySync.entitySync = new NEntitySync
            {
                Event  = entityEvent,
                Id     = entity.Id,
                Entity = entity
            };
            NetClient.Instance.SendMessage(message);
        }
예제 #9
0
        public void SendMapEntitySync(EntityEvent entityEvent, NEntity entity)
        {
            //Debug.LogFormat("MapEntitySyncRequest:ID :{0} POS:{1} DIR:{2} SPD:{3}",entity.Id,entity.Position,entity.Direction,entity.Speed);
            NetMessage message = new NetMessage();

            message.Request = new NetMessageRequest();
            message.Request.mapEntitySync            = new MapEntitySyncRequest();
            message.Request.mapEntitySync.entitySync = new NEntitySync()
            {
                Id     = entity.Id,
                Event  = entityEvent,
                Entity = entity
            };
            NetClient.Instance.SendMessage(message);
        }
예제 #10
0
        public void SendMapSync(EntityEvent entityEvent, NEntity nEntity, int param)
        {
            Debug.LogFormat("MapEntityUpdataResqust:Id:{0}Pos:{1}Dir:{2}Spd:{3}", nEntity.Id, nEntity.Position, nEntity.Direction, nEntity.Speed);
            NetMessage message = new NetMessage();

            message.Request = new NetMessageRequest();
            message.Request.mapEntitySync            = new MapEntitySyncRequest();
            message.Request.mapEntitySync.entitySync = new NEntitySync()
            {
                Id     = nEntity.Id,
                Event  = entityEvent,
                Entity = nEntity,
                Param  = param
            };
            NetClient.Instance.SendMessage(message);
        }
예제 #11
0
    public static bool EntityUpdate(NEntity entity, UnityEngine.Vector3 position, Quaternion rotation, float speed)
    {
        NVector3 pos     = WorldToLogicN(position);
        NVector3 dir     = WorldToLogicN(rotation.eulerAngles);
        int      spd     = WorldToLogic(speed);
        bool     updated = false;

        if (!entity.Position.Equal(pos))
        {
            entity.Position = pos;
            updated         = true;
        }
        if (!entity.Direction.Equal(dir))
        {
            entity.Direction = dir;
            updated          = true;
        }
        if (entity.Speed != spd)
        {
            entity.Speed = spd;
            updated      = true;
        }
        return(updated);
    }
        public static bool EntityUpdata(NEntity entity, Vector3 position, Quaternion rotation, float speed)
        {
            NVector3 pos    = WorldToLogicN(position);
            NVector3 dir    = WorldToLogicN(rotation.eulerAngles);
            int      sped   = Mathf.RoundToInt(speed);
            bool     updata = false;

            if (!entity.Position.Equal(pos))//是否一样
            {
                entity.Position = pos;
                updata          = true;
            }
            if (!entity.Direction.Equal(dir))
            {
                entity.Direction = dir;
                updata           = true;
            }
            if (entity.Speed != sped)
            {
                entity.Speed = sped;
                updata       = true;
            }
            return(updata);
        }
예제 #13
0
    public static bool EntityUpdate(NEntity nEntity, Vector3 position, Quaternion rotation, float speed)
    {
        NVector3 nPossition = WorldToLogicN(position);
        NVector3 nDirection = WorldToLogicN(rotation.eulerAngles);
        int      _speed     = WorldToLogic(speed);
        bool     updated    = false;

        if (!nEntity.Position.Equal(nPossition))
        {
            nEntity.Position = nPossition;
            updated          = true;
        }
        if (!nEntity.Direction.Equal(nDirection))
        {
            nEntity.Direction = nDirection;
            updated           = true;
        }
        if (nEntity.Speed != _speed)
        {
            nEntity.Speed = _speed;
            updated       = true;
        }
        return(updated);
    }
예제 #14
0
 /// <summary>
 /// this method set up the entity info
 /// </summary>
 /// <param name="entity"></param>
 private void SetUpEntity(NEntity entity)
 {
     this.position  = this.position.FromNVector3(entity.Position);
     this.direction = this.direction.FromNVector3(entity.Direction);
     this.speed     = entity.Speed;
 }
예제 #15
0
 public Entity(NEntity nEntity)
 {
     this.entityID    = nEntity.Id;  //id does not change
     this.mEntityData = nEntity;
     this.SetUpEntity(nEntity);
 }
예제 #16
0
 public void SetEntityData(NEntity entity)
 {
     this.Position  = entity.Position;
     this.Direction = entity.Direction;
     this.speed     = entity.Speed;
 }
예제 #17
0
 public Entity(NEntity entity)
 {
     this.entityData = entity;
 }
예제 #18
0
 /// <summary>
 /// 给字段赋值 Nvector3转vector3Int
 /// </summary>
 /// <param name="nEntity"></param>
 public void SetEntityData(NEntity nEntity)
 {
     this.position  = this.position.FromNVector3(nEntity.Position);//将Nvector3的position转化为vector3Int类型的并赋值
     this.direction = this.direction.FromNVector3(nEntity.Direction);
     this.speed     = nEntity.Speed;
 }
예제 #19
0
 public Entity(NEntity entity)
 {
     this.entityId   = entity.Id;
     this.entityData = entity;
     this.SetEntityData(entity);
 }
예제 #20
0
 public World AddEntity(NEntity.Entity entity)
 {
     entities.Add (entity);
     this.E_EntityAdded (this, entity);
     return this;
 }
예제 #21
0
 public void SetEntityData(NEntity entity)
 {
     this.position  = this.position.FromNVector3(entity.Position);
     this.direction = this.direction.FromNVector3(entity.Direction);
     this.speed     = entity.Speed;
 }
예제 #22
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="nEntity"></param>
 public Entity(NEntity nEntity)
 {
     entityId        = nEntity.Id;
     this.EntityData = nEntity;
 }