So I have some code where the camera is shaking and my error is:
Assets/Scripts/CameraShake.cs(33,25): error CS0029: Cannot implicitly convert type UnityEngine.Vector3’ to float’
The error shows up on the lines where I multiply the x and y variables with the damper, magnitude, and the originalCamPos. If you have any idea why this is happening, it would be greatly appreciated. Thanks!
public float duration = 0.5f;
public float speedBump = 1.0f;
public float magnitude = 0.1f;
void Update(){
if(Input.GetButtonDown("Fire2")){
StartCoroutine(Shake());
}
}
IEnumerator Shake() {
float elapsed = 0.0f;
Vector3 originalCamPos = Camera.main.transform.position;
while (elapsed < duration) {
elapsed += Time.deltaTime;
float percentComplete = elapsed / duration;
float damper = 1.0f - Mathf.Clamp(4.0f * percentComplete - 3.0f, 0.0f, 1.0f);
// map value to [-1, 1]
var x = Random.value * 2.0f - 1.0f;
var y = Random.value * 2.0f - 1.0f;
x *= magnitude * damper * originalCamPos;
y *= magnitude * damper * originalCamPos;
Camera.main.transform.position = new Vector3(x, y, originalCamPos.z);
yield return null;
}
}