Exemplo n.º 1
0
        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);
                }
            });
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
            }
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
 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);
         }
     });
 }
Exemplo n.º 6
0
        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);
            }
        }