Hello and I need some help with coding
So I am really a beginner and I have been trying to complete the TANKS 3D tutorial to some kind get a hang of the coding and game-making in general. However, I have ran into some problems related to coding. Been working with the Tank Movement script, and although I've been completely following the tutorial (or at least I think I have) some bugs in the coding still showed up. I have been working hard to get around those but all I have managed to do was to cut to 3 bugs. Could anybody help me to fix this and provide some brief explanation? Thank you in advance.
private void EngineAudio()
{
if (Mathf.Abs (m_MovementInputValue) < 0.1f && Mathf.Abs (m_MovementInputValue) < 0.1f)
{
if (m_MovementAudio.clip == m_EngineDriving)
{
m_MovementAudio.clip = m_EngineIdling;
m_MovementAudio.pitch = Random.Range (m_OriginalPitch - m_PitchRange, m_OriginalPitch + m_PitchRange);
m_MovementAudio.Play ();
}
}
else if (m_MovementAudio.clip == m_EngineIdling)
{
{
m_MovementAudio.clip = m_EngineDriving;
m_MovementAudio.pitch = Random.Range (m_OriginalPitch - m_PitchRange, m_OriginalPitch + m_PitchRange);
m_MovementAudio.Play ()
}
}
This one gives issue with the last bracket (Unexpected symbol)
private void Move()
{
// Adjust the position of the tank based on the player's input.
{ Vector3 movement = transform.forward * m_MovementInputValue * m_Speed * Time.deltaTime;
m_Rigidbody.MovePosition (m_Rigidbody.position + movement);
}
}
private void Turn()
{
{ float turn = m_TurnInputValue * m_TurnSpeed * Time.deltaTime;
Quaternion turnRotation = Quaternion.Euler (0f, turn, 0f);
m_Rigidbody.MoveRotation (m_Rigidbody.rotation * turnRotation);
}
}
}
This one has issue with the private symbol in the beggining. (Unexpected symbol 'private, though there are several other 'private ' symbols which seem to work well.
Answer by Bonfi_96 · Mar 17, 2016 at 08:00 PM
In the first one there is an extra bracket before "m_MovementAudio.clip" (I made a correction considering the "else" belonging to the first if)
private void EngineAudio()
{
if (Mathf.Abs (m_MovementInputValue) < 0.1f && Mathf.Abs (m_MovementInputValue) < 0.1f)
{
if (m_MovementAudio.clip == m_EngineDriving)
{
m_MovementAudio.clip = m_EngineIdling;
m_MovementAudio.pitch = Random.Range (m_OriginalPitch - m_PitchRange, m_OriginalPitch + m_PitchRange);
m_MovementAudio.Play ();
}
}
else if (m_MovementAudio.clip == m_EngineIdling)
{
m_MovementAudio.clip = m_EngineDriving;
m_MovementAudio.pitch = Random.Range (m_OriginalPitch - m_PitchRange, m_OriginalPitch + m_PitchRange);
m_MovementAudio.Play ()
}
}
I the second one both functions have a pair of extra brackets, and another one to the bottom (maybe you copied the class ending bracket?)
private void Move()
// Adjust the position of the tank based on the player's input.
{ Vector3 movement = transform.forward * m_MovementInputValue * m_Speed * Time.deltaTime;
m_Rigidbody.MovePosition (m_Rigidbody.position + movement);
}
private void Turn()
{
float turn = m_TurnInputValue * m_TurnSpeed * Time.deltaTime;
Quaternion turnRotation = Quaternion.Euler (0f, turn, 0f);
m_Rigidbody.MoveRotation (m_Rigidbody.rotation * turnRotation);
}
Anyway, I would suggest you to get better at indenting the code properly, you would easily avoid this kind of isuues
Thank you for your help. Yes, I am trying to get the hang of this as quick as i can :D
Your answer
![](https://koobas.hobune.stream/wayback/20220612072239im_/https://answers.unity.com/themes/thub/images/avi.jpg)