private void speedDown(float value) { foreach (GameObject triggerVolume in _InTriggerGO) { InLoopTrigger triggerComp = triggerVolume.GetComponent <InLoopTrigger>(); triggerComp.speedMult = triggerComp.initialSpeedMult * value; } }
public LoopSystem() { foreach (GameObject triggerVolume in _StartTriggerGO) { StartLoopTrigger triggerComp = triggerVolume.GetComponent <StartLoopTrigger>(); triggerComp.deckPool.Shuffle <GameObject>(); } foreach (GameObject triggerVolume in _InGO) { InLoopTrigger triggerComp = triggerVolume.GetComponent <InLoopTrigger>(); triggerComp.initialSpeedMult = triggerComp.speedMult; } }
// Use to process your families. protected override void onProcess(int familiesUpdateCount) { foreach (GameObject triggerVolume in _StartTriggerGO) { StartLoopTrigger triggerComp = triggerVolume.GetComponent <StartLoopTrigger>(); if (triggerComp.deckPool.Count > 0) { triggerComp.cooldownDeck -= Time.deltaTime; if (triggerComp.cooldownDeck <= 0) { triggerComp.cooldownDeck = triggerComp.deckRate; GameObject prefab = triggerComp.deckPool.Pop <GameObject>(); // Instanciate the GameObject GameObject go = Object.Instantiate(prefab); go.SetActive(true); // Bind it to FYFY GameObjectManager.bind(go); // Set GameObject's position go.transform.position = randomStartPosition(triggerVolume); } } if (triggerComp.randomGoPool.Count > 0) { triggerComp.cooldownRandom -= Time.deltaTime; if (triggerComp.cooldownRandom <= 0) { triggerComp.cooldownRandom = triggerComp.randomGoRate; GameObject prefab = triggerComp.randomGoPool.Pop <GameObject>(); // Instanciate the GameObject GameObject go = Object.Instantiate(prefab); go.SetActive(true); // Bind it to FYFY GameObjectManager.bind(go); // Set GameObject's position go.transform.position = randomStartPosition(triggerVolume); } } } foreach (GameObject triggerVolume in _InTriggerGO) { InLoopTrigger triggerComp = triggerVolume.GetComponent <InLoopTrigger>(); Triggered3D triggered = triggerVolume.GetComponent <Triggered3D>(); foreach (GameObject go in triggered.Targets) { MoveToward moveToward = go.GetComponent <MoveToward>(); if (moveToward) // Immuno layer { moveToward.useOverride = true; moveToward.overrideSpeed = triggerComp.speedMult; } if (moveToward && moveToward.target != triggerComp.target.position && go.layer != 11) // Immuno layer { moveToward.target = triggerComp.target.position; } } } foreach (GameObject triggerVolume in _EndTriggerGO) { EndLoopTrigger triggerComp = triggerVolume.GetComponent <EndLoopTrigger>(); Triggered3D triggered = triggerVolume.GetComponent <Triggered3D>(); foreach (GameObject go in triggered.Targets) { go.transform.position = randomStartPosition(triggerComp.teleport); } } }