hi i am new to unity, i am trying to get the main camera to change position when i press F3, and resume its first position when i press F1, could someone please show me where i am going wrong? code below, thank you
using UnityEngine;
using System.Collections;
public class Fps2 : MonoBehaviour {
//public Transform FPSCamera;
bool isFps2 = true;
float currentSpeed = 4.0f;
float boostSpeed = 150.0f;
float turningSpeed = 90.0f;
float MturningSpeed = 90.0f;
public Transform mainCamera;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (shouldMoveForward ())
moveForward ();
if (shouldTurnLeft ())
turnLeft ();
if (shouldTurnRight ())
turnRight ();
if (shouldMoveBackward ())
moveBackward ();
if (shouldBoost ())
boost ();
if (Input.GetKeyDown(KeyCode.F1)) isFps2 = true;
if (Input.GetKeyDown(KeyCode.F3)) isFps2 = false;
if (isFps2)
{
Vector3 lookAtPoint = transform.position + 20 * transform.forward;
mainCamera.position =
transform.position - transform.forward* 8
+4* transform.up;
mainCamera.rotation = Quaternion.LookRotation(lookAtPoint - mainCamera.position,
transform.up);
}
else
{
Vector3 lookAtPoint = transform.position + 50 * transform.forward;
mainCamera.position =
transform.position - transform.forward* 20
+10* transform.up;
mainCamera.rotation = Quaternion.LookRotation(lookAtPoint - mainCamera.position,
transform.up);
}
//FPSCamera.position = transform.position;
//FPSCamera.rotation = transform.rotation;
//Quaternian
/Vector3 lookAtPoint = transform.position + 20 * transform.forward;
mainCamera.position =
transform.position - transform.forward 8
+4* transform.up;
mainCamera.rotation = Quaternion.LookRotation(lookAtPoint - mainCamera.position,
transform.up);*/
}
static bool shouldMoveForward ()
{
return Input.GetKey (KeyCode.W);
}
void moveForward ()
{
transform.position +=
currentSpeed * transform.forward * Time.deltaTime;
}
static bool shouldTurnLeft ()
{
return Input.GetKey (KeyCode.A);
}
void turnLeft()
{
transform.Rotate(
Vector3.up,-MturningSpeed * Time.deltaTime);
}
static bool shouldTurnRight ()
{
return Input.GetKey (KeyCode.D);
}
void turnRight()
{
transform.Rotate (
Vector3.up, turningSpeed * Time.deltaTime);
}
static bool shouldMoveBackward ()
{
return Input.GetKey (KeyCode.S);
}
void moveBackward ()
{
transform.position -=
currentSpeed * transform.forward * Time.deltaTime;
}
static bool shouldBoost ()
{
return Input.GetKey (KeyCode.Space);
}
void boost ()
{
transform.position +=
boostSpeed * transform.forward * Time.deltaTime;
}