我将创建 Android 应用程序,通过触摸在 X 和 Z 线上移动游戏对象,游戏对象必须向右、向左、向上或向下移动。我已经编写了这个属于 gameObject 的脚本,我在其中检查了 Raycast 的触摸。
您知道通过触摸移动对象的任何其他方法吗?
#pragma strict
var hit = new RaycastHit();
function Start () {
}
function FixedUpdate () {
for (var i :int = 0; i < Input.touchCount; ++i) {
if (Input.GetTouch(0).phase == TouchPhase.Moved ) {
var touchDeltaPosition:Vector2 = Input.GetTouch(i).deltaPosition;
var touch_pos : Vector3 = new Vector3(Input.GetTouch(i).position.x, Input.GetTouch(i).position.y , 0);
var ray : Ray = Camera.main.ScreenPointToRay (touch_pos);
Debug.DrawRay (ray.origin, ray.direction * 10, Color.yellow);
if (Physics.Raycast (ray, hit))
{
Debug.Log(hit.transform.tag);
if(hit.transform.tag == "Cubes")
{
if(Mathf.Abs(Input.GetTouch(i).deltaPosition.x) > Mathf.Abs(Input.GetTouch(i).deltaPosition.y))
{
if(Input.GetTouch(i).deltaPosition.x > 0)
{
transform.Translate(0,0,1);
// 'right';
}
else
{
transform.Translate(0,0,-1);
//GUItest.text = 'left';
}
}
else
{
if(Input.GetTouch(i).deltaPosition.y > 0)
{
transform.Translate(-1,0,0);
// 'up';
}
else
{
transform.Translate(1,0,0);
// 'dawn';
}
}
}
}
}
}
}