public static Danmaku[] GetInactive(FireData data, DynamicInt count)
 {
     if (danmakuPool == null)
     {
         new GameObject("Danmaku Game Controller").AddComponent <DanmakuGameController>();
     }
     if (data == null)
     {
         throw new System.ArgumentNullException();
     }
     Danmaku[] danmakus = new Danmaku[count];
     danmakuPool.Get(danmakus);
     for (int i = 0; i < danmakus.Length; i++)
     {
         Danmaku danmaku = danmakus[i];
         danmaku.MatchPrefab(data.Prefab);
         danmaku.position.x   = data.Position.x;
         danmaku.position.y   = data.Position.y;
         danmaku.Rotation     = data.Rotation.Value;
         danmaku.Speed        = data.Speed.Value;
         danmaku.AngularSpeed = data.AngularSpeed.Value;
         danmaku.AddController(data.Controller);
         danmaku.Damage = data.Damage.Value;
     }
     return(danmakus);
 }
        public static Danmaku GetInactive(FireData data)
        {
            if (danmakuPool == null)
            {
                new GameObject("Danmaku Game Controller").AddComponent <DanmakuGameController>();
            }
            if (data == null)
            {
                throw new System.ArgumentNullException();
            }
            Danmaku danmaku = danmakuPool.Get();

            danmaku.MatchPrefab(data.Prefab);
            danmaku.position.x   = data.Position.x;
            danmaku.position.y   = data.Position.y;
            danmaku.Rotation     = data.Rotation.Value;
            danmaku.Speed        = data.Speed.Value;
            danmaku.AngularSpeed = data.AngularSpeed.Value;
            danmaku.AddController(data.Controller);
            danmaku.Damage = data.Damage.Value;
            if (data.Group != null)
            {
                data.Group.Add(danmaku);
            }
            return(danmaku);
        }
예제 #3
0
        public static T MatchPrefab <T> (this T danmakus, DanmakuPrefab prefab) where T : class, IEnumerable <Danmaku>
        {
            if (danmakus == null)
            {
                return(null);
            }
            var arrayTest = danmakus as Danmaku[];

            if (arrayTest != null)
            {
                for (int i = 0; i < arrayTest.Length; i++)
                {
                    Danmaku danmaku = arrayTest[i];
                    if (danmaku != null)
                    {
                        danmaku.MatchPrefab(prefab);
                    }
                }
            }
            else
            {
                foreach (var danmaku in danmakus)
                {
                    if (danmaku != null)
                    {
                        danmaku.MatchPrefab(prefab);
                    }
                }
            }
            return(danmakus);
        }
        public static Danmaku GetInactive(DanmakuPrefab danmakuType, Vector2 position, DynamicFloat rotation)
        {
            if (danmakuPool == null)
            {
                new GameObject("Danmaku Game Controller").AddComponent <DanmakuGameController>();
            }
            Danmaku danmaku = danmakuPool.Get();

            danmaku.MatchPrefab(danmakuType);
            danmaku.position.x = position.x;
            danmaku.position.y = position.y;
            danmaku.Rotation   = rotation;
            return(danmaku);
        }
 public static void GetInactive(DanmakuPrefab danmakuType, Vector2 position, DynamicFloat rotation, Danmaku[] prealloc)
 {
     if (danmakuPool == null)
     {
         new GameObject("Danmaku Game Controller").AddComponent <DanmakuGameController>();
     }
     danmakuPool.Get(prealloc);
     for (int i = 0; i < prealloc.Length; i++)
     {
         Danmaku danmaku = prealloc[i];
         danmaku.MatchPrefab(danmakuType);
         danmaku.position.x = position.x;
         danmaku.position.y = position.y;
         danmaku.Rotation   = rotation.Value;
     }
 }
 public static Danmaku[] GetInactive(DanmakuPrefab danmakuType, Vector2 position, DynamicFloat rotation, DynamicInt count)
 {
     if (danmakuPool == null)
     {
         new GameObject("Danmaku Game Controller").AddComponent <DanmakuGameController>();
     }
     Danmaku[] array = new Danmaku[count];
     danmakuPool.Get(array);
     for (int i = 0; i < array.Length; i++)
     {
         Danmaku danmaku = array[i];
         danmaku.MatchPrefab(danmakuType);
         danmaku.position.x = position.x;
         danmaku.position.y = position.y;
         danmaku.Rotation   = rotation.Value;
     }
     return(array);
 }
 public static void GetInactive(FireData data, Danmaku[] prealloc)
 {
     if (danmakuPool == null)
     {
         new GameObject("Danmaku Game Controller").AddComponent <DanmakuGameController>();
     }
     if (data == null)
     {
         throw new System.ArgumentNullException();
     }
     danmakuPool.Get(prealloc);
     for (int i = 0; i < prealloc.Length; i++)
     {
         Danmaku danmaku = prealloc[i];
         danmaku.MatchPrefab(data.Prefab);
         danmaku.position.x   = data.Position.x;
         danmaku.position.y   = data.Position.y;
         danmaku.Rotation     = data.Rotation.Value;
         danmaku.Speed        = data.Speed.Value;
         danmaku.AngularSpeed = data.AngularSpeed.Value;
         danmaku.AddController(data.Controller);
         danmaku.Damage = data.Damage.Value;
     }
 }