public WaterfallSmokeEmitter(string prefabName, Transform parentTransform) { prefab = prefabName; parent = parentTransform; GameObject go = GameObject.Instantiate(WaterfallParticleLoader.GetParticles(prefabName), Vector3.zero, Quaternion.identity) as GameObject; emitter = go.GetComponent <ParticleSystem>(); renderer = go.GetComponent <ParticleSystemRenderer>(); go.transform.SetParent(parentTransform); go.transform.localPosition = Vector3.zero; go.transform.localScale = Vector3.one; go.transform.localRotation = Quaternion.identity; FloatingOrigin.RegisterParticleSystem(emitter); }
/// <summary> /// Attaches the LaunchPadFX module and /// </summary> /// <param name="emitterTransformNames"></param> /// <param name="baseObject"></param> public void Setup(List <string> emitterTransformNames, GameObject baseObject, string smokeName) { InitializePSystems(); List <ParticleSystem> unityEmitters = new List <ParticleSystem>(); List <KSPParticleEmitter> kspEmitters = new List <KSPParticleEmitter>(); totalFXField = typeof(LaunchPadFX).GetField("totalFX", BindingFlags.NonPublic | BindingFlags.Instance); foreach (string emName in emitterTransformNames) { foreach (Transform emTransform in baseObject.transform.FindAllRecursive(emName)) { if (particleSystems.ContainsKey(smokeName)) { if (particleSystems[smokeName].pSystems != null) { foreach (ParticleSystem pSystem in particleSystems[smokeName].pSystems) { //Log.Normal("adding PSystem: " + pSystem.name); ParticleSystem emPsystem = Instantiate(pSystem, emTransform.position, emTransform.rotation, emTransform); emPsystem.gameObject.SetActive(true); unityEmitters.Add(emPsystem); FloatingOrigin.RegisterParticleSystem(emPsystem); } } if (particleSystems[smokeName].kspEmitters != null) { foreach (KSPParticleEmitter pSystem in particleSystems[smokeName].kspEmitters) { //Log.Normal("adding PSystem: " + pSystem.name); KSPParticleEmitter emPsystem = Instantiate(pSystem, emTransform.position, emTransform.rotation, emTransform); emPsystem.gameObject.SetActive(true); kspEmitters.Add(emPsystem); } } } else { Log.UserError("Cannot find a LaunchPad Smoke with name: " + smokeName); } } } // assign the emitters to the underlying component ps = unityEmitters.ToArray(); kspPS = kspEmitters.ToArray(); }
public void Setup(List <string> emitterTransformNames, GameObject baseObject) { GetSquadPsystem(); List <ParticleSystem> emitters = new List <ParticleSystem>(); foreach (string emName in emitterTransformNames) { foreach (Transform emTransform in baseObject.transform.FindAllRecursive(emName)) { //ParticleSystem emPsystem = emTransform.gameObject.AddComponent<ParticleSystem>(); //ParticleSystemRenderer emPsystemRenderer = emTransform.gameObject.AddComponent<ParticleSystemRenderer>(); ParticleSystem emPsystem = Instantiate(pSystem, emTransform.position, emTransform.rotation, emTransform); ParticleSystemRenderer emPsystemRenderer = Instantiate(pSystemRenderer, emTransform.position, emTransform.rotation, emTransform); emitters.Add(emPsystem); FloatingOrigin.RegisterParticleSystem(emPsystem); } } ps = emitters.ToArray(); }
public static void Add(PersistentKSPShurikenEmitter pkpe) { persistentEmittersShuriken.Add(pkpe); FloatingOrigin.RegisterParticleSystem(pkpe.pe); }