I want to change the speed of my character to change when it collides with a box. A sort of speed-up boost, however I cannot get it to work whereby my code is most likely the problem.
function OnTriggerStay (other: Collider) {
ForwardSpeed = 20.0;
}
I’d also like to flip the camera and mirror the controls so that W is backward, S is forward, A is right and D is left. I hope someone can help out, I am new to Unity.
Finally I found out how to do this. Here’s my code.
FirstPersonController.cs:
using UnityEngine;
using System.Collections;
public class FirstPersonController : MonoBehaviour {
static public float movementSpeed = 5.0f;
public float mouseSensitivity = 2.0f;
float verticalRotation = 0;
public float upDownRange = 60.0f;
// Use this for initialization
void Start () {
//Screen.lockCursor = true;
}
// Update is called once per frame
void Update () {
//rotation
float rotLeftRight = Input.GetAxis ("Mouse X") * mouseSensitivity;
transform.Rotate(0, rotLeftRight, 0);
verticalRotation -= Input.GetAxis ("Mouse Y") * mouseSensitivity;
verticalRotation = Mathf.Clamp (verticalRotation, -upDownRange, upDownRange);
Camera.main.transform.localRotation = Quaternion.Euler (verticalRotation, 0, 0);
//movement
float forwardSpeed = Input.GetAxis ("Vertical") * movementSpeed;
float sideSpeed = Input.GetAxis ("Horizontal") * movementSpeed;
Vector3 speed = new Vector3( sideSpeed, 0, forwardSpeed);
speed = transform.rotation * speed;
CharacterController cc = GetComponent<CharacterController>();
cc.SimpleMove ( speed );
}
}
TriggerSpeed:
using UnityEngine;
using System.Collections;
public class TriggerSpeed : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnTriggerStay(Collider other) {
FirstPersonController.movementSpeed = 20.0f;
}