[Unity Scripts]Sailing Ship Controls(Js)

Posts 1–4 of 4 · Page 1 of 1
[Unity Scripts]Sailing Ship Controls(Js)
Code:
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****tate(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");
}
Quote Originally Posted by XX_Kivata_XX View Post
thank you for a code /?
Its helpful for when you create a game ..
You need to post credits. :3
Posts 1–4 of 4 · Page 1 of 1

Post a Reply

Similar Threads

Tags for this Thread

None

Talk with us