Rotation Troubles
I have a prefab tank that I am instantiating successfully at the start of every round, similar to the tank tutorial that Unity has but my game is 2D. The issue I am having is that if you rotate the turret to face the other player and one player dies, the turret rotation does not reset at the start of a new round. The script attached is the script which moves my player. If it is needed, I can attach the game manager and the associated tank manager.
using UnityEngine;
using System.Collections;
[RequireComponent(typeof(Rigidbody2D))]
public class TankMovement : MonoBehaviour {
public int PlayerNumber = 1;
public Transform Tank;
private Vector2 Velocity = Vector2.zero;
public float TMovement = 5f;
public float TurretRotation = 80f;
public float smooth = 2f;
private string MovementAxisName;
private string TurretAxisName;
public Rigidbody2D TankRB;
public Rigidbody2D TurretRigidbody;
private float MovementInputValue;
private float TurretInputValue;
private void OnEnable ()
{
TankRB.isKinematic = false;
TurretRigidbody.isKinematic = false;
MovementInputValue = 0f;
TurretInputValue = 0f;
}
private void OnDisable()
{
TankRB.isKinematic = true;
TurretRigidbody.isKinematic = true;
}
// Use this for initialization
public void Start ()
{
MovementAxisName = "Vertical" + PlayerNumber;
TurretAxisName = "Horizontal" + PlayerNumber;
}
// Update is called once per frame
public void Update ()
{
MovementInputValue = Input.GetAxis(MovementAxisName);
TurretInputValue = Input.GetAxis(TurretAxisName);
}
void FixedUpdate()
{
Move ();
Turn ();
}
public void GetMove (Vector2 _velocity)
{
Velocity = _velocity;
}
private void Move ()
{
if (Velocity != Vector2.zero)
{
TankRB.MovePosition (TankRB.position + Velocity * Time.fixedDeltaTime);
}
}
private void Turn()
{
float turn = TurretInputValue * TurretRotation * Time.deltaTime * smooth;
TurretRigidbody.MoveRotation (TurretRigidbody.rotation + turn);
if (TurretRigidbody.rotation > 80)
{
TurretRigidbody.rotation = 80;
}
if (TurretRigidbody.rotation < -80)
{
TurretRigidbody.rotation = -80;
}
}
}
Your answer
Follow this Question
Related Questions
Rotation resets on character controller 0 Answers
Reset rotation of gameobject 1 Answer
Resetting rotation of FPSController on collision. 0 Answers
Access 2DCollision Torque/rotation force and set it to 0 0 Answers
Why is this code in the script not stopping the rotation of the Gameobject? 0 Answers