標籤:
測試環境:unity3d 4.6.1
1 using UnityEngine; 2 using System.Collections; 3 4 public class neccc : MonoBehaviour 5 { 6 7 8 public bool isMouseDown = false; 9 private Vector3 lastMousePosition = Vector3.zero;10 11 Vector3 defaultPosition;12 public float speed = 0.5f;13 14 15 void Start()16 {17 lastMousePosition = Input.mousePosition;18 19 }20 // Update is called once per frame21 void Update()22 {23 24 /*25 * Camera.ScreenToWorldPoint 螢幕轉世界位置26 從螢幕空間到世界空間的變化位置。27 28 螢幕空間以像素定義。螢幕的左下為(0,0);右上是(pixelWidth,pixelHeight),Z的位置是以世界單位衡量的到相機的距離。29 */30 #region 滑鼠移動(手機螢幕移動)滑鼠或者手指不一定要在角色上 角色跟著移動 注意:這裡必須2D遊戲。即。在建立遊戲的時候選擇2D31 if (Input.GetMouseButtonDown(0))32 {33 isMouseDown = true;34 35 }36 if (Input.GetMouseButtonUp(0))37 {38 isMouseDown = false;39 lastMousePosition = Vector3.zero;40 }41 if (isMouseDown)42 {43 if (lastMousePosition != Vector3.zero)44 {45 //camera.main.ScreenToWorldPoint(Input.mousePosition);46 Vector3 offetSet = Camera.main.ScreenToWorldPoint(Input.mousePosition) - lastMousePosition;47 48 transform.position = transform.position + offetSet;49 }50 lastMousePosition = transform.position;51 }52 #endregion53 54 }55 56 57 /// <summary>58 /// 滑鼠按下,記住當前滑鼠的位置(如果是手機。則是觸摸的位置)59 /// </summary>60 void OnMouseDown()61 {62 defaultPosition = Input.mousePosition;63 }64 65 /// <summary>66 /// 滑鼠拖動(手機螢幕上拖動)移動物體67 /// </summary>68 void OnMouseDrag()69 {70 Vector3 v = Input.mousePosition - defaultPosition;71 transform.position = v;72 //平滑速度,根據需要用73 //transform.position += v * Time.deltaTime * speed;74 defaultPosition = Input.mousePosition;75 }76 77 }
相容PC和手機觸摸代碼