// Start is called before the first frame update /* * * In this function I set the 3 input fields that we have to zero */ void Start() { // audioData = GetComponent<AudioSource>(); // audioData.Play(0); m_rb = GetComponent <Rigidbody>(); Assert.IsNotNull(m_rb, "Houston, we've got a problem here! No Rigidbody attached"); Xpos.GetComponent <UnityEngine.UI.InputField>().text = "0"; Ypos.GetComponent <UnityEngine.UI.InputField>().text = "0"; Zpos.GetComponent <UnityEngine.UI.InputField>().text = "0"; CreateTargetDisplay(); }
// Update is called once per frame /* * By uncommenting the movePlayer function, you can move the player but since it is penalty kick game, * I thought it is better to comment this. * * next i Check the target position, if it is equal to (0,0,0), it means that the player has not set the target * or the user has restarted the game. So I set the velocity of ball to zero cause I don't want it to move. * */ void Update() { // movePlayer(); updateTargetPos(); if (m_TargetDisplay != null && m_bIsGrounded) { if (m_vTargetPos.y == 0 && m_vTargetPos.z == 0 && m_vTargetPos.x == 0) { m_TargetDisplay.transform.position = Vector3.zero; m_vInitialVel = Vector3.zero; m_rb.velocity = m_vInitialVel; vDebugHeading = Vector3.zero; } //If the ball is not in the goal position, I still calculate the heading and target display position else { if (!goal) { m_TargetDisplay.transform.position = m_vTargetPos; vDebugHeading = m_vTargetPos - transform.position; } } } //If the user presses shoot, he can kick the ball if (m_bDebugKickBall && m_bIsGrounded) { m_bDebugKickBall = false; addScore = false; OnKickBall(); } //If the user restart the game, every variable restarts as well except the score if (m_bRestart) { m_vTargetPos = Vector3.zero; m_TargetDisplay.transform.position = m_vTargetPos; transform.position = initialPos; goal = false; addScore = false; m_rb.position = initialPos; Xpos.GetComponent <UnityEngine.UI.InputField>().text = "0"; Ypos.GetComponent <UnityEngine.UI.InputField>().text = "0"; Zpos.GetComponent <UnityEngine.UI.InputField>().text = "0"; m_bRestart = false; } //Check to see if the ball is whithin the goal post checkBound(); //If the ball is in the goal, I multiply the velocity in the y axis casue I want the ball to fall there. //I also add to the score if (goal) { if (!addScore) { goalCount++; } addScore = true; m_vInitialVel.z = 0.0f; if (m_vInitialVel.y > 0.0f) { m_vInitialVel.y = -1 * m_vInitialVel.y; } m_rb.velocity = m_vInitialVel; goal = false; } }
//In this function, I update the target position by the inputs I received from the player private void updateTargetPos() { m_vTargetPos.x = float.Parse(Xpos.GetComponent <UnityEngine.UI.InputField>().text); m_vTargetPos.y = float.Parse(Ypos.GetComponent <UnityEngine.UI.InputField>().text); m_vTargetPos.z = float.Parse(Zpos.GetComponent <UnityEngine.UI.InputField>().text); }