// PUBLIC // PRIVATE // PRIVATE STATIC // PRIVATE COROUTINE // PRIVATE INVOKE //-------------------------------------- // Events //-------------------------------------- /// <summary> /// _ons the user interface collision enter2 D signal. /// </summary> /// <param name="aTag_string">A tag_string.</param> private void _onUICollisionEnter2DSignal(GameObject aCollidedWith_gameobject) { //WHAT DID WE HIT? switch (aCollidedWith_gameobject.tag) { case CPUPaddleUI.TAG: case PlayerPaddleUI.TAG: // PaddleComponent paddleComponent = aCollidedWith_gameobject.GetComponent <PaddleComponent>(); view.doHandleCollisionWithPaddle(paddleComponent.velocity); paddleComponent.doSpinOnce(); // soundPlaySignal.Dispatch(new SoundPlayVO(SoundType.PADDLE_HIT)); break; case BoundaryComponent.TAG: //WHICH TYPE OF BOUNDARY WAS HIT? BoundaryComponent boundaryComponent = aCollidedWith_gameobject.GetComponent <BoundaryComponent>(); // switch (boundaryComponent.boundaryType) { case BoundaryType.LeftGoal: //LEFT BOUND HIT? THEN REWARD RIGHT SCORE rightPaddleScoreChangeSignal.Dispatch(1); soundPlaySignal.Dispatch(new SoundPlayVO(SoundType.GOAL_LOSS)); break; case BoundaryType.RightGoal: //RIGHT BOUND HIT? THEN REWARD LEFT SCORE leftPaddleScoreChangeSignal.Dispatch(1); soundPlaySignal.Dispatch(new SoundPlayVO(SoundType.GOAL_WIN)); break; case BoundaryType.None: soundPlaySignal.Dispatch(new SoundPlayVO(SoundType.PADDLE_HIT)); break; default: #pragma warning disable 0162 throw new SwitchStatementException(); break; #pragma warning restore 0162 } break; } }