项目中我用的方法
using UnityEngine; using System.Collections; public class TearApartControl : MonoBehaviour { public Texture2D handCursor; private bool _hitOBject = false; // Use this for initialization void Start () { { handCursor = (Texture2D)Resources.Load("HandIcon"); } } // Update is called once per frame void Update () { } void OnMouseOver() { Screen.showCursor = false; _hitOBject = true; } void OnMouseExit() { Screen.showCursor = true; _hitOBject = false; } void OnGUI() { if (_hitOBject) { GUI.DrawTexture(new Rect(Input.mousePosition.x - handCursor.width / 2, (Screen.height - Input.mousePosition.y) - (handCursor.height / 2) + (handCursor.height / 2), handCursor.width, handCursor.height), handCursor); } } }
另外一个方法
var Mid:Texture2D; var Mouse:Texture2D;//鼠标图片 var mousePos = Vector2.zero;//鼠标的位置 private var angle:float; function Update() { mousePos = Input.mousePosition;//获取鼠标位置 angle = 180 – Mathf.Atan2(mousePs.x – 250, Screen.height -mousePs.y – 250) * Mathf.Rad2Deg;//计算选择角度 } function OnGUI () { Screen.showCursor = false; GUIUtility.RotateAroundPivot (angle, Vector2(250, 250)); GUI.DrawTexture(Rect(200,200,100,100),Mid); GUIUtility.RotateAroundPivot (-angle, Vector2(250, 250)); GUI.DrawTexture(Rect(mousePs.x,Screen.height -mousePs.y,25,25),mouse); }