- Home /
Question by
Bentoon · Jan 02, 2015 at 05:43 PM ·
cameratouchcamera-movement
moving Camera with touch constrained to up & down
Hello All, I have an aerial view Camera facing the ground and I have a script that works with Arrow Keys (up down left & right) to move it
There is also touch input that works horizontally (x axis) but not vertically (normally y but since I am aerial it is z)
What am I doing wrong?
Here is the javascript
#pragma strict
// Moves object according to finger movement on the screen
var speed : float = 0.05;
var nonSpeed : float = 0;
function Update () {
if (Input.GetKey(KeyCode.RightArrow) ){
Debug.Log("right");
transform.Translate (Vector3(10,0,0) * Time.deltaTime*speed);
}
if ( Input.GetKey(KeyCode.LeftArrow) ){
Debug.Log("left");
transform.Translate (Vector3(-10,0,0) * Time.deltaTime*speed);
}
if ( Input.GetKey(KeyCode.UpArrow) ){
Debug.Log("Up");
transform.Translate (Vector3(0,-10,0) * Time.deltaTime*speed);
}
if ( Input.GetKey(KeyCode.DownArrow) ){
Debug.Log("Down");
transform.Translate (Vector3(0,10,0) * Time.deltaTime*speed);
}
if (Input.touchCount > 0 &&
Input.GetTouch(0).phase == TouchPhase.Moved) {
// Get movement of the finger since last frame
var touchDeltaPosition:Vector3 = Input.GetTouch(0).deltaPosition;
// Move object across XZ plane
transform.Translate (-touchDeltaPosition.x * speed,
0,0);
transform.Translate (-touchDeltaPosition.z * speed,
0,0);
}
}
Thanks
~be
Comment
Best Answer
Answer by Bentoon · Jan 03, 2015 at 03:39 AM
Here we Go:
Got it working, Here is the script for future reference:
~be
var speed : float = 0.05;
var nonSpeed : float = 0;
function Update () {
if (Input.GetKey(KeyCode.RightArrow) ){
Debug.Log("right");
transform.Translate (Vector3(10,0,0) * Time.deltaTime*speed);
}
if ( Input.GetKey(KeyCode.LeftArrow) ){
Debug.Log("left");
transform.Translate (Vector3(-10,0,0) * Time.deltaTime*speed);
}
if ( Input.GetKey(KeyCode.UpArrow) ){
Debug.Log("Up");
transform.Translate (Vector3(0,-10,0) * Time.deltaTime*speed);
}
if ( Input.GetKey(KeyCode.DownArrow) ){
Debug.Log("Down");
transform.Translate (Vector3(0,10,0) * Time.deltaTime*speed);
}
if (Input.touchCount > 0 &&
Input.GetTouch(0).phase == TouchPhase.Moved) {
// Get movement of the finger since last frame
var touchDeltaPosition:Vector3 = Input.GetTouch(0).deltaPosition;
// Move object across XY plane
transform.Translate (-touchDeltaPosition.x * speed,
0,0);
transform.Translate (0,-touchDeltaPosition.y * nonSpeed,0);
}
}