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