public override void Update() { new EntityQuery() .With <FollowTarget>() .ForEach(obj => { FollowTarget follow = obj.GetECSComponent <FollowTarget>(); //calming down the enemy if (follow.HasBeenCalmDown) { obj.transform.position = GameMananger.RandomNavmeshLocation(400f, obj); obj.GetECSComponent <TrailRenderer>().UnityComponent.Clear(); follow.HasBeenCalmDown = false; EntityActionBuffer.Instance.ApplyComponentChanges(obj, follow); } //we pick a new target PickNewTarget(obj, follow); //We see if the target is dead or not KillTarget(obj, follow); if (follow.Target != null) { obj.GetECSComponent <NavMeshAgent>().UnityComponent.SetDestination(follow.Target.transform.position); } }); }
private void Create() { for (int i = 0; i < _number; i++) { //entity GameObject tmp = EntityActionBuffer.Instance.CreateEntity(_prefab); tmp.transform.position = GameMananger.RandomNavmeshLocation(40f, tmp); //component TargetEdible miam = new TargetEdible(); Score score = new Score(i, 0, false); Vendetta vendetta = new Vendetta(false, null); TrailRenderer trailRenderer = new TrailRenderer(tmp); MeshRenderer meshRenderer = new MeshRenderer(tmp); NavMeshAgent navMeshAgent = new NavMeshAgent(tmp); //merging both EntityActionBuffer.Instance.AddComponent(tmp, miam); EntityActionBuffer.Instance.AddComponent(tmp, score); EntityActionBuffer.Instance.AddComponent(tmp, vendetta); EntityActionBuffer.Instance.AddComponent(tmp, trailRenderer); EntityActionBuffer.Instance.AddComponent(tmp, meshRenderer); EntityActionBuffer.Instance.AddComponent(tmp, navMeshAgent); } }
private void Create() { for (int i = 0; i < _number; i++) { //component Edible edible = new Edible(); //entity GameObject tmp = EntityActionBuffer.Instance.CreateEntity(_prefab); tmp.transform.position = GameMananger.RandomNavmeshLocation(40, tmp); //merging both EntityActionBuffer.Instance.AddComponent(tmp, edible); } }
private void Death(GameObject obj) { if (obj.GetECSComponent <Score>().IsDead) { obj.transform.position = GameMananger.RandomNavmeshLocation(40f, obj); obj.GetECSComponent <TrailRenderer>().UnityComponent.Clear(); Score score = obj.GetECSComponent <Score>(); MonoBehaviour.print($"pecsman N°{score.Id} with score of {score.Value}"); score.Value = 0; score.IsDead = false; EntityActionBuffer.Instance.ApplyComponentChanges(obj, score); } }
public override void Update() { new EntityQuery() .With <Edible>() .ForEach(obj => { //check if food as been eaten Edible edible = obj.GetECSComponent <Edible>(); if (!edible.Active) { obj.transform.position = GameMananger.RandomNavmeshLocation(40f, obj); edible.Active = true; EntityActionBuffer.Instance.ApplyComponentChanges(obj, edible); } }); }
private void Create() { for (int i = 0; i < _number; i++) { //entity GameObject tmp = EntityActionBuffer.Instance.CreateEntity(_prefab); tmp.transform.position = GameMananger.RandomNavmeshLocation(400, tmp); //component FollowTarget follow = new FollowTarget(null, false); TrailRenderer trailRenderer = new TrailRenderer(tmp); MeshRenderer meshRenderer = new MeshRenderer(tmp); NavMeshAgent navMeshAgent = new NavMeshAgent(tmp); //merging both EntityActionBuffer.Instance.AddComponent(tmp, follow); EntityActionBuffer.Instance.AddComponent(tmp, trailRenderer); EntityActionBuffer.Instance.AddComponent(tmp, meshRenderer); EntityActionBuffer.Instance.AddComponent(tmp, navMeshAgent); } }