I am making a power up for my player to double up its speed if it enter’s the power up prefab’s Collider .
There are no errors popping up but when i enter the collider of the power up prefab still there is no change in the speed . check my code and help me out to spot the error . Any help is appreciated.
using UnityEngine;
using System.Collections;
public class Movement : MonoBehaviour{
public float movespeed= 12f;
public float turnspeed = 130f;
void Update () {
if (Input.GetKey (KeyCode.UpArrow)) {
transform.Translate (Vector3.forward * movespeed * Time.deltaTime);
}
if(Input.GetKey (KeyCode.DownArrow)) {
transform.Translate(-Vector3.forward * movespeed * Time.deltaTime);
}
if(Input.GetKey (KeyCode.LeftArrow)) {
transform.Rotate(Vector3.up * -turnspeed * Time.deltaTime);
}
if(Input.GetKey (KeyCode.RightArrow)) {
transform.Rotate(Vector3.up * turnspeed * Time.deltaTime);
}
}
}
Power up code
using UnityEngine;
using System.Collections;
public class Powerup : MonoBehaviour {
private Vector3 orginalscale;
protected Collider collider;
public float rotation_speed =50f;
public float up_down_speed =0.3f;
private float speedMultiplier = 2.0f;
private Movement movement ;
void Start () {
orginalscale = transform.localScale;
collider = GetComponent<Collider>();
}
void Update () {
transform.Rotate(new Vector3 (0, Time.deltaTime * rotation_speed, 0));
Vector3 position = transform.position;
position.y -= Mathf.Sin(Time.timeSinceLevelLoad - Time.deltaTime) * up_down_speed;
position.y += Mathf.Sin(Time.timeSinceLevelLoad) * up_down_speed;
transform.position = position;
}
void OnTriggerEnter(Collider other) {
collider.enabled = false;
transform.localScale = Vector3.zero;
GameObject thePlayer = GameObject.Find("enemytank1");
movement=thePlayer.GetComponent< Movement>();
movement.movespeed *= speedMultiplier;
}
}