Hi there I have this code in java:
@script RequireComponent( CharacterController )
static var POS : int;
public var useAccelerometer : boolean = true;
public var useTouch : boolean = true;
public var useJoypad : boolean = true;
private var player1 : Transform;
private var touchVelocity : float;
var touchSpeed : float = 0.3;
var accelerometerSpeed : float = 30;
private var accelAxis : int = 0;
private var touchAxis : int = 0;
var horizontalOrientation : boolean = true;
private var accelCalib : Vector3 = Vector3.zero;
private var smooth : float;
var cam : Camera;
var speed = 30.0;
// joystick controller variables
var character : CharacterController;
var thisTransform : Transform;
var moveJoystick : Joypad;
var forwardSpeed : float = 2;
var backwardSpeed : float = 2;
var sidestepSpeed : float = 2;
private var velocity : Vector3;
public var JoystickPrefab:GameObject;
function Start()
{
cam = gameObject.FindWithTag(“MainCamera”).GetComponent(“Camera”);
cam = gameObject.FindWithTag(“MainCamera”).GetComponent(“Camera”);
player1 = transform;
iPhoneKeyboard.autorotateToPortrait = false;
iPhoneKeyboard.autorotateToPortraitUpsideDown = false;
iPhoneKeyboard.autorotateToLandscapeRight = false;
iPhoneKeyboard.autorotateToLandscapeLeft = true;
//joystick
character = GetComponent( CharacterController );
thisTransform = transform;
if (useJoypad)
{
var joypos : Vector3 = Vector3(0,0, 0 );
Instantiate(JoystickPrefab, joypos, Quaternion.identity);
}
}
private var targetPosition:Vector3;
function Update () {
var movement = thisTransform.TransformDirection( Vector3( moveJoystick.position.x, moveJoystick.position.y, 0 ) );
// We only want horizontal movement
//movement.y = 0;
movement.Normalize();
// Horizontal
if (transform.position.x <= -6.5f)
transform.position = new Vector3(-6.5f, transform.position.y, transform.position.z);
else if (transform.position.x >= 6.5f)
transform.position = new Vector3(6.5f, transform.position.y, transform.position.z);
// Vertical
if (transform.position.y <= -4.0f)
transform.position = new Vector3(transform.position.x, -4.0f, transform.position.z);
else if (transform.position.y >= 4.0f)
transform.position = new Vector3(transform.position.x, 4.0f, transform.position.z);
//iphone accelerometer START
if (useAccelerometer)
{
var dir : Vector3 = Vector3.zero;
// we assume that device is held parallel to the ground
// and Home button is in the right hand
// remap device acceleration axis to game coordinates:
// 1) XY plane of the device is mapped onto XZ plane
// 2) rotated 90 degrees around Y axis
if (iPhoneSettings.screenOrientation == iPhoneScreenOrientation.LandscapeLeft)
{
dir.x = -Input.acceleration.y;
dir.y = Input.acceleration.x;
}
else if (iPhoneSettings.screenOrientation == iPhoneScreenOrientation.LandscapeRight)
{
dir.x = Input.acceleration.y;
dir.y = -Input.acceleration.x;
}
// clamp acceleration vector to unit sphere
if (dir.sqrMagnitude > 1)
dir.Normalize();
// Make it move 10 meters per second instead of 10 meters per frame…
dir *= Time.deltaTime;
// Move object
transform.Translate (dir * speed);
}//iphone accelerometer END
//iphone touch/mouse START
if (useTouch)
{
for (var touch : iPhoneTouch in iPhoneInput.touches)
{
var p : Vector3 = cam.ScreenToWorldPoint (Vector3 (touch.position.x,touch.position.y,0));
transform.position = new Vector3(p.x, p.y, 0);
}
}//iphone touch/mouse END
//iphone joypad START
if (useJoypad)
{
var characterVelocity = character.velocity;
var horizontalVelocity : Vector3 = characterVelocity;
//horizontalVelocity.y = 0;
var speed = horizontalVelocity.magnitude;
var upwardsMotion = Vector3.Dot( thisTransform.up, characterVelocity );
var absJoyPos = Vector2( Mathf.Abs( moveJoystick.position.x ),Mathf.Abs( moveJoystick.position.y ) );
if ( absJoyPos.y > absJoyPos.x )
{
if ( moveJoystick.position.y > 0 )
movement *= forwardSpeed * absJoyPos.y;
else
{
movement *= backwardSpeed * absJoyPos.y;
}
}
else
{
movement *= sidestepSpeed * absJoyPos.x;
}
// Actually move the character
character.Move( movement );
}//iphone accelerometer END
if ((iPhoneInput.orientation == iPhoneOrientation.LandscapeLeft) (iPhoneSettings.screenOrientation != iPhoneScreenOrientation.LandscapeLeft))
{
iPhoneSettings.screenOrientation = iPhoneScreenOrientation.LandscapeLeft;
}
if ((iPhoneInput.orientation == iPhoneOrientation.LandscapeRight) (iPhoneSettings.screenOrientation != iPhoneScreenOrientation.LandscapeRight))
{
iPhoneSettings.screenOrientation = iPhoneScreenOrientation.LandscapeRight;
}
}
Continue…