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); }
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 T AddController <T> (this T danmakus, DanmakuController controller) 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.AddController(controller); } } } else { foreach (var danmaku in danmakus) { if (danmaku != null) { danmaku.AddController(controller); } } } return(danmakus); }
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; } }