Перемещение объектов по экрану пальцем. Как базовый код, это может помочь.
Синтаксис:
Используется javascript
#pragma strict
var object : GameObject = null;
private var oT : Transform = null;
private var selected : boolean = false;
function Awake() {
if (object) {
oT = object.transform;
} else {
var script : DragObject = GetComponent(DragObject);
script.enabled = false;
}
}
function FixedUpdate () {
if (object) {
var cam : Camera = Camera.main;
for (var touch : iPhoneTouch in iPhoneInput.touches) {
var ray = cam.ScreenPointToRay(touch.position);
var hit : RaycastHit;
if (touch.phase == iPhoneTouchPhase.Began) {
if (Physics.Raycast(ray, hit, 100)) {
if (hit.collider.gameObject == object) {
selected = true;
}
}
} else if (touch.phase == iPhoneTouchPhase.Moved) {
if (selected == true) {
var cameraTransform = cam.transform.InverseTransformPoint(0, 0, 0);
var touchPosition = cam.ScreenToWorldPoint(new Vector3(touch.position.x, touch.position.y, cameraTransform.z));
oT.position.x = touchPosition.x;
}
} else if (touch.phase == iPhoneTouchPhase.Ended) {
selected = false;
}
}
}
}
var object : GameObject = null;
private var oT : Transform = null;
private var selected : boolean = false;
function Awake() {
if (object) {
oT = object.transform;
} else {
var script : DragObject = GetComponent(DragObject);
script.enabled = false;
}
}
function FixedUpdate () {
if (object) {
var cam : Camera = Camera.main;
for (var touch : iPhoneTouch in iPhoneInput.touches) {
var ray = cam.ScreenPointToRay(touch.position);
var hit : RaycastHit;
if (touch.phase == iPhoneTouchPhase.Began) {
if (Physics.Raycast(ray, hit, 100)) {
if (hit.collider.gameObject == object) {
selected = true;
}
}
} else if (touch.phase == iPhoneTouchPhase.Moved) {
if (selected == true) {
var cameraTransform = cam.transform.InverseTransformPoint(0, 0, 0);
var touchPosition = cam.ScreenToWorldPoint(new Vector3(touch.position.x, touch.position.y, cameraTransform.z));
oT.position.x = touchPosition.x;
}
} else if (touch.phase == iPhoneTouchPhase.Ended) {
selected = false;
}
}
}
}