コード例 #1
0
    private void OnEndPan(InputData ID)
    {
        if (CurrentMemekoBall.EnableInputLogic == false)  // Dont process Input for the player
        {
            return;
        }

        if (CurrentMemekoBall.FSMCharacter.CurrentState.StateName != Globals.MemekoStates.Selecting)
        {
            return;
        }

        int        layerMask = 1 << Globals.Constants.LayerInputNumber;
        Ray        ray       = Camera.main.ScreenPointToRay(ID.InputPosition);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit, Mathf.Infinity, layerMask))
        {
            float deltaDist = (Globals.GameValues.BallColliderSize / 2F);
            if (directionArrow.getDistance() <= deltaDist) //
            {
                CurrentMemekoBall.FSMCharacter.SendMessageToCurrentState("UnSelectPlayer");
            }
            else
            {
                Vector3 newDirection = hit.point;
                newDirection[1] = CurrentMemekoBall.transform.position.y;
                AttackDirectionInfo directionInfo = new AttackDirectionInfo(initialPanPosition, newDirection,
                                                                            directionArrow.getDistance());

                CurrentMemekoBall.FSMCharacter.SendMessageToCurrentState("LaunchBall", directionInfo);
            }
        }
    }
コード例 #2
0
 public void LaunchBall(AttackDirectionInfo attackDirection)
 {
     CurrentMemeko.AttackDirection = attackDirection;
     CurrentMemeko.FSMCharacter.RaiseEvent("Launching");
 }