For some reason when I run this, it delays for a few seconds after my countdown (still happens even when countdown is disabled). It started occurring after I added the *speedBoost* to *rb.AddForce(0,0,forwardSpeed ∗ speedBoost ∗ hardnessIndex ∗ Time.deltaTime);* and the effect doesn't occur if I use the line *rb.AddForce(0,0,forwardSpeed ∗ hardnessIndex ∗ Time.deltaTime);*
Can some please help me? I have no idea what is happening. **Note:** I used ∗ instead of * because it made everything itallically.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerMovement : MonoBehaviour {
public Rigidbody rb;
public float forwardSpeed = 2000f;
public float sidewaySpeed = 1000f;
float enterTime = 0f;
public float speedBoost = 1f;
float hardnessIndex = 1f;
float playerOldPos;
void OnTriggerEnter () {
speedBoost = speedBoost * 1.1f;
enterTime = Time.timeSinceLevelLoad;
}
void Start () {
playerOldPos = rb.position.z;
}
void Update() {
if (Time.timeSinceLevelLoad - enterTime > 5) {
speedBoost = 1f;
enterTime = 0f;
}
if (rb.position.z > playerOldPos + 100f) {
playerOldPos = rb.position.z;
if (hardnessIndex < 2f) {
hardnessIndex *= 1.05f;
}
}
}
void FixedUpdate () {
// if (Time.timeSinceLevelLoad < 4) {
// return;
// }
rb.AddForce(0,0,forwardSpeed * speedBoost * hardnessIndex * Time.deltaTime);
if (Input.GetKey(KeyCode.D) || Input.GetKey(KeyCode.RightArrow)) {
rb.AddForce(sidewaySpeed * speedBoost * hardnessIndex * Time.deltaTime,0,0, ForceMode.VelocityChange);
}
if (Input.GetKey(KeyCode.A) || Input.GetKey(KeyCode.LeftArrow)) {
rb.AddForce(-sidewaySpeed * speedBoost * hardnessIndex * Time.deltaTime, 0, 0, ForceMode.VelocityChange);
}
}
}
↧