// ---------------------------------------------------------------------------------------------------- #endregion #region Initialization // ---------------------------------------------------------------------------------------------------- /// <summary> /// Called upon awaking this behavior. /// </summary> private void Awake() { this.movementController = this.GetComponent <MovementController>(); this.collisionController = this.GetComponent <ActorCollisionController>(); this.hasGravitationalObject = false; this.collisionController.OnTriggerCollision += (collision) => { var collisionGravity = collision.GetComponent <CollisionGravity>(); if (collisionGravity != null) { this.gravitationalObject = collisionGravity; this.gravicationalTransform = collisionGravity.transform; this.hasGravitationalObject = collisionGravity.IsActive; } }; this.collisionController.OnTriggerCollisionExit += (collision) => { if (this.hasGravitationalObject) { var collisionGravity = collision.GetComponent <CollisionGravity>(); if (this.gravitationalObject == collisionGravity) { this.gravitationalObject = null; this.gravicationalTransform = null; this.hasGravitationalObject = false; } } }; }
// ---------------------------------------------------------------------------------------------------- #endregion #region Initialization // ---------------------------------------------------------------------------------------------------- /// <summary> /// Called upon awaking this behavior. /// </summary> private void Awake() { this.playerController = this.GetComponent <PlayerController>(); this.collisionController = this.GetComponent <ActorCollisionController>(); this.collisionController.OnTriggerCollision += (collisionTarget) => { var collisionPickup = collisionTarget.GetComponent <CollisionPickup>(); if (collisionPickup != null) { this.playerController.AddScore(collisionPickup.Score); } }; }
// ---------------------------------------------------------------------------------------------------- #endregion #region Initialization // ---------------------------------------------------------------------------------------------------- /// <summary> /// Called upon awaking this behavior. /// </summary> private void Awake() { this.playerController = this.GetComponent <PlayerController>(); this.collisionController = this.GetComponent <ActorCollisionController>(); this.cameraShakeEffect = this.GetComponent <CameraShakeEffect>(); this.collisionController.OnTriggerCollision += (collisionTarget) => { var collisionDamage = collisionTarget.GetComponent <CollisionDamage>(); if (collisionDamage != null) { this.playerController.Damage(collisionDamage.Damage); this.OnReceivedDamage?.Invoke(collisionDamage); this.cameraShakeEffect.Shake(); } }; }
// ---------------------------------------------------------------------------------------------------- #endregion #region Initialization // ---------------------------------------------------------------------------------------------------- /// <summary> /// Called upon awaking this behavior. /// </summary> private void Awake() { this.collisionController = this.GetComponent <ActorCollisionController>(); this.collisionController.OnTriggerCollision += (collisionTarget) => { var puzzleBlock = collisionTarget.GetComponent <PuzzleBlockController>(); if (puzzleBlock != null) { if (CollisionUtils.IsObjectInsideTile(transform.position, puzzleBlock.transform.position)) { this.IsActivated = true; puzzleBlock.SetActivation(true); } else { this.IsActivated = false; puzzleBlock.SetActivation(false); } } }; }
// ---------------------------------------------------------------------------------------------------- #endregion #region Initialization // ---------------------------------------------------------------------------------------------------- /// <summary> /// Called upon awaking this behavior. /// </summary> private void Awake() { this.inputController = this.GetComponent <InputController>(); this.playerController = this.GetComponent <PlayerController>(); this.collisionController = this.GetComponent <ActorCollisionController>(); this.collisionController.OnTriggerCollision += (collisionTarget) => { var target = collisionTarget.GetComponent <InteractionTarget>(); if (target != null) { this.interactionTarget = target; this.hasInteractionTarget = target.IsActive; } }; this.collisionController.OnTriggerCollisionExit += (collisionTarget) => { var target = collisionTarget.GetComponent <InteractionTarget>(); if (this.interactionTarget == target) { this.interactionTarget = null; this.hasInteractionTarget = false; } }; }
/// <summary> /// Collider exits the trigger. /// </summary> public void ExitTrigger(ActorCollisionController collisionController) { this.OnTriggerCollisionExit?.Invoke(collisionController); }
// ---------------------------------------------------------------------------------------------------- #endregion #region Collision Methods // ---------------------------------------------------------------------------------------------------- /// <summary> /// Called on trigger collision. /// </summary> public void CollideTrigger(ActorCollisionController collisionController) { this.OnTriggerCollision?.Invoke(collisionController); }