- Home /
problem with mathf function
iam learning fps tutorial. My first script is the mouselookup script. Problem is with a mathf script that i have used. The script is as follows.
public class mouselookup_script : MonoBehaviour {
public float looksensitivity = 5;
public float yrotation;
public float xrotation;
public float currentxrotation;
public float currentyrotation;
public float YrotationV;
public float XrotationV;
public float looksmoothdamp;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
yrotation += Input.GetAxis("Mouse X") * looksensitivity;
xrotation -= Input.GetAxis("Mouse Y") * looksensitivity;
currentxrotation = Mathf.SmoothDamp( currentxrotation, xrotation, XrotationV, looksmoothdamp );
currentxrotation = Mathf.SmoothDamp( currentxrotation, xrotation, XrotationV, looksmoothdamp );
transform.rotation = Quaternion.Euler(currentxrotation, currentyrotation, 0);
}
}
The error message i received, when i ran the script is
Assets/scripts/mouselookup_script.cs(27,42): error CS1502: The best overloaded method match for `UnityEngine.Mathf.SmoothDamp(float, float, ref float, float)' has some invalid arguments.
Need help. Dont know wat is the problem.
Answer by dewlap · Dec 20, 2012 at 05:54 PM
The third argument to SmoothDamp is a ref.
The ref method parameter keyword on a method parameter causes a method to refer to the same variable that was passed into the method. Any changes made to the parameter in the method will be reflected in that variable when control passes back to the calling method.
Try adding the ref keyword before XrotationV :
currentxrotation = Mathf.SmoothDamp( currentxrotation, xrotation, ref XrotationV, looksmoothdamp );
currentxrotation = Mathf.SmoothDamp( currentxrotation, xrotation, ref XrotationV, looksmoothdamp );
Answer by Landern · Dec 20, 2012 at 05:43 PM
Try adding the ref(reference) keyword. Using Mathf.SmoothDamp(..) in UnityScript/JavaScript does not require this, but does when used in c#.
// Update is called once per frame
void Update () {
yrotation += Input.GetAxis("Mouse X") * looksensitivity;
xrotation -= Input.GetAxis("Mouse Y") * looksensitivity;
currentxrotation = Mathf.SmoothDamp( currentxrotation, xrotation, ref XrotationV, looksmoothdamp );
currentxrotation = Mathf.SmoothDamp( currentxrotation, xrotation, ref XrotationV, looksmoothdamp );
transform.rotation = Quaternion.Euler(currentxrotation, currentyrotation, 0);
}
Your answer
Follow this Question
Related Questions
Photon RPC "DestroyRpc" function not found 1 Answer
Invalid IL Code Error 0 Answers
Error: expecting ( 1 Answer
How can i make my function only assigned to and throw error otherwise? 2 Answers
Incremental game need help 1 Answer