您的位置:首页 > 编程语言

兼容PC和手机触摸代码

2015-06-22 21:28 429 查看
测试环境:unity3d 4.6.1

using UnityEngine;
using System.Collections;

public class neccc : MonoBehaviour
{

public bool isMouseDown = false;
private Vector3 lastMousePosition = Vector3.zero;

Vector3 defaultPosition;
public float speed = 0.5f;

void Start()
{
lastMousePosition = Input.mousePosition;

}
// Update is called once per frame
void Update()
{

/*
* Camera.ScreenToWorldPoint 屏幕转世界位置
从屏幕空间到世界空间的变化位置。

屏幕空间以像素定义。屏幕的左下为(0,0);右上是(pixelWidth,pixelHeight),Z的位置是以世界单位衡量的到相机的距离。
*/
#region 鼠标移动(手机屏幕移动)鼠标或者手指不一定要在角色上 角色跟着移动  注意:这里必须2D游戏。即。在创建游戏的时候选择2D
if (Input.GetMouseButtonDown(0))
{
isMouseDown = true;

}
if (Input.GetMouseButtonUp(0))
{
isMouseDown = false;
lastMousePosition = Vector3.zero;
}
if (isMouseDown)
{
if (lastMousePosition != Vector3.zero)
{
//camera.main.ScreenToWorldPoint(Input.mousePosition);
Vector3 offetSet = Camera.main.ScreenToWorldPoint(Input.mousePosition) - lastMousePosition;

transform.position = transform.position + offetSet;
}
lastMousePosition = transform.position;
}
#endregion

}

/// <summary>
/// 鼠标按下,记住当前鼠标的位置(如果是手机。则是触摸的位置)
/// </summary>
void OnMouseDown()
{
defaultPosition = Input.mousePosition;
}

/// <summary>
/// 鼠标拖动(手机屏幕上拖动)移动物体
/// </summary>
void OnMouseDrag()
{
Vector3 v = Input.mousePosition - defaultPosition;
transform.position = v;
//平滑速度,根据需要用
//transform.position += v * Time.deltaTime * speed;
defaultPosition = Input.mousePosition;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: