IEnumerator LaserCoroutine(GameMap.BlockInstance instance) { var obj = Instantiate(LaserPrefab); obj.name = "Laser"; var laser = obj.GetComponent <FX.Laser>(); laser.BlockInstance = instance; laser.transform.parent = instance.transform; laser.transform.position = instance.transform.position + DirectionVector.ToVector3() * .5f; laser.transform.rotation = Quaternion.FromToRotation(Vector3.right, DirectionVector); laser.OnTrigger += (collider) => { var player = collider.attachedRigidbody?.GetComponent <Player>(); if (player) { player.Kill(); } }; if (ActiveOnAwake) { laser.PowerOn(0.05f); foreach (var t in Utility.FixedTimer(ActiveTime)) { yield return(new WaitForFixedUpdate()); } laser.ShutDown(0.2f); } while (true) { foreach (var t in Utility.FixedTimer(SleepTime)) { yield return(new WaitForFixedUpdate()); } laser.PowerOn(0.05f); foreach (var t in Utility.FixedTimer(ActiveTime)) { yield return(new WaitForFixedUpdate()); } laser.ShutDown(0.2f); } }
public virtual void OnTrigger(GameMap.BlockInstance instance, Collider2D collider) { }
public virtual void OnCollision(GameMap.BlockInstance instance, Collision2D collision) { }
public virtual void UpdateInstance(GameMap.BlockInstance instance) { }
public virtual void OnBlockObjectCreated(GameMap.BlockInstance instance, GameObject obj, BlockData block) { }