public void Execute() { var list = World.GetComponents <MoveComponent>(); if (list != null) { foreach (MoveComponent com in list) { TransformComponent pos = World.GetComponentByEntityId(com.EntityId, typeof(TransformComponent)) as TransformComponent; if (pos != null) { pos.Translate(com.GetPathV2()); } BoxColliderComponent box = World.GetComponentByEntityId(com.EntityId, typeof(BoxColliderComponent)) as BoxColliderComponent; if (box != null) { box.UpdateCollision(new VInt3((int)pos.LocalPosition.x, (int)pos.LocalPosition.y, 0)); } SphereColliderComponent sphere = World.GetComponentByEntityId(com.EntityId, typeof(SphereColliderComponent)) as SphereColliderComponent; if (sphere != null) { sphere.UpdateCollision(new VInt3((int)pos.LocalPosition.x, (int)pos.LocalPosition.y, 0)); } } } }
void Start() { heroAnimator = this.GetComponent <Animator>(); heroCharacterController = this.GetComponent <CharacterController>(); sphereColliderComponent = transform.Find("SphereCollider").GetComponent <SphereColliderComponent>(); sphereColliderComponent.OnTriggerEnterEvent += (collider) => { if (collider.transform.tag == "NPC") { attackNPC = collider.transform.GetComponent <NPCComponent>(); } if (collider.transform.tag == "Player" && collider.gameObject.name != playerUnitData.PlayerId.ToString()) { attackPlayer = collider.transform.GetComponent <PlayerComponent>(); } }; sphereColliderComponent.OnTriggerExitEvent += (collider) => { if (collider.transform.tag == "NPC") { attackNPC = null; } if (collider.transform.tag == "Player" && collider.gameObject.name != playerUnitData.PlayerId.ToString()) { attackPlayer = null; } }; SyncPlayerData.Instance.syncPositionBack += SyncPositionBack; }