Пример #1
0
        public Partawn Emit(
            TeamTag teamTag,
            Vector2 location, float rotation, float speed, float dps, float life)
        {
            Partawn p = new Partawn(
                idSource++, teamTag, location, rotation, speed, dps, life);

            partawns.Add(p);
            return(p);
        }
Пример #2
0
        void EmitPartawns()
        {
            if (way == 0)
            {
                return;
            }

            float rotation;

            if (aimTarget != null)
            {
                rotation = Vector2.SignedAngle(
                    Vector2.right, aimTarget.location - location);
            }
            else
            {
                rotation = UnityEngine.Random.Range(0, 360.0f);
            }

            for (int i = 0; i < way; i++)
            {
                var r = rotation;
                if (1 < way)
                {
                    r += -wayRange * 0.5f + (wayRange * i / (way - 1));
                    Debug.Log(r);
                }
                r += UnityEngine.Random.Range(0, jitter) - jitter * 0.5f;

                Partawn p = partawnPool.Emit(
                    teamTag, location, r,
                    partawnSpeed, partawnDps, partawnLife);
                partawns.Add(p);
                emitSubject.OnNext(p);
            }
        }