Beispiel #1
0
 void Update()
 {
     if (Input.GetKeyDown(KeyCode.Space))
     {
         currState = eShooterState.State0;
         ShootBall();
     }
 }
Beispiel #2
0
    void Start()
    {
        defaultBallPos = gameObject.transform.position;
        ballBody       = gameObject.GetComponent <Rigidbody>();
        invertXZMult   = trainee.gameObject.GetComponent <PPAgent>().invertXZ ? -1f : 1f;

        currState = eShooterState.State0;
        ShootBall();
    }
Beispiel #3
0
    void ShootBall()
    {
        currState = eShooterState.State0;
        gameObject.transform.position = defaultBallPos;
        float x = Random.Range(minX, maxX);
        float z = Random.Range(minZ, maxZ);

        ballBody.velocity = Vector3.zero;
        ballBody.AddForce(new Vector3(x, 0, z) * invertXZMult, ForceMode.Impulse);
    }
Beispiel #4
0
    void MakeStep(eShooterTransition transition)
    {
        switch (currState)
        {
        case eShooterState.State0:
            switch (transition)
            {
            case eShooterTransition.ST_BADTABLE:
                currState = eShooterState.State1;
                break;

            case eShooterTransition.ST_RACK:
                RewardAndReset(REWARD_FAIL);
                break;

            default:
                RewardAndReset(REWARD_WIN);
                break;
            }
            break;

        case eShooterState.State1:
            switch (transition)
            {
            case eShooterTransition.ST_RACK:
                currState = eShooterState.State2;
                break;

            default:
                RewardAndReset(REWARD_FAIL);
                break;
            }
            break;

        case eShooterState.State2:
            switch (transition)
            {
            case eShooterTransition.ST_GOODTABLE:
                RewardAndReset(REWARD_WIN);
                break;

            default:
                RewardAndReset(REWARD_HIT);
                break;
            }
            break;
        }
    }