Hello,
Im new to unity so i had some problems in a script which i couldn’t solve
Here are the problems;
-
Ambiguous reference ‘Abs’: Unityengine.mathf.abs(int), unityengine.mathf.abs(float)
Problem in var r = Mathf.Sqrt(Mathf.Abs( x ));
-
Opreator ‘<’ cannot be used with the left hand side of the typme ‘object’ and right side of the type ‘int’.
Problem in if( x < 0 ){
-
Opreator ‘-’ cannot be used with an expression ‘error’.
Problem in return -r;
4.‘transform’ is not a member of ‘object’
Problem in rudderControl.transform.eulerAngles = Vector3(0, rudderAngle, 0);
Remember I’m making for a mobile platform
Here is the script;
var speed = 1.0;
var acceleration = 1.0;
var maxspeed = 2.0;
var minspeed = -0.25;
var heading = 0.0;
var rudder = 0.0;
var rudderDelta = 2.0;
var maxRudder = 6.0;
var bob = 0.1;
var bobFrequency = 0.2;
private var elapsed = 0.0;
private var seaLevel = 0.0;
private var rudderControl;
private var rudderAngle = 0.0;
function signedSqrt( x ){
var r = Mathf.Sqrt(Mathf.Abs( x ));
if( x < 0 ){
return -r;
} else {
return r;
}
}
function Update () {
// Bobbing
elapsed += Time.deltaTime;
transform.position.y = seaLevel + bob * Mathf.Sin(elapsed * bobFrequency * (Mathf.PI * 2));
// Steering
rudder += Input.GetAxis("Horizontal") * rudderDelta * Time.deltaTime;
if( rudder > maxRudder ){
rudder = maxRudder;
} else if ( rudder < -maxRudder ){
rudder = -maxRudder;
}
heading = (heading + rudder * Time.deltaTime * signedSqrt(speed)) % 360;
// transform.Rotate(0, rudder * Time.deltaTime, 0);
transform.eulerAngles.y = heading;
transform.eulerAngles.z = -rudder;
if( rudderControl ){
rudderAngle = ((-60 * rudder)/maxRudder + heading) % 360;
//rudderControl.transform.localEulerAngles.y = (70 * rudderAngle) % 360;
rudderControl.transform.eulerAngles = Vector3(0, rudderAngle, 0);
}
// Sail
speed += Input.GetAxis("Vertical") * acceleration * Time.deltaTime;
if( speed > maxspeed ){
speed = maxspeed;
} else if ( speed < minspeed ){
speed = minspeed;
}
transform.Translate(0, 0, speed * Time.deltaTime);
}
function Awake (){
seaLevel = transform.position.y;
rudderControl = GameObject.Find("rudderControl");
}
Help im new to unityscript !!!
Thanks