示例#1
0
        protected override void OnUpdate()
        {
            foreach (var entity in GetEntities <Pull>())
            {
                int countByTick            = entity.pullComponent.countByTick;
                List <GameObject> objects  = entity.pullComponent.objects;
                float3            startPos = entity.radiusComponent.startPos;
                float             radius   = entity.radiusComponent.radius;
                float             spread   = entity.radiusComponent.spread;

                if (objects.Count == 0)
                {
                    continue;
                }

                int length;
                if (countByTick == 0)
                {
                    length = objects.Count;
                }
                else
                {
                    length = countByTick;
                }
                for (int i = 0; i < length; i++)
                {
                    if (objects.Count == 0)
                    {
                        break;
                    }
                    GameObject gameObject = objects[0];
                    objects.RemoveAt(0);
                    gameObject.transform.position = Rand.OnCircle(radius, -spread, spread) + startPos;
                    ParametersComponent parametersComponent = gameObject.GetComponent <ParametersComponent>();
                    if (parametersComponent)
                    {
                        parametersComponent.health = parametersComponent.maxHealth;
                    }
                    gameObject.SetActive(true);
                }

                entity.pullComponent.objects = objects;
            }
        }
示例#2
0
 public CreatureAsset(int id, IComponent[] components) : base(id, components)
 {
     Parameters = GetComponent <ParametersComponent>();
 }