Unity3d 实现用鼠标拖拽鼠标

实现用鼠标拖拽鼠标  鼠标进入物体改变物体颜色

using UnityEngine;
using System.Collections;

public class clickObj : MonoBehaviour {
	
	public Texture2D[] pic = new Texture2D[4];
	private Color c;
	private Texture origPic;
	private int index;
	
	private Vector3 screenPoint;
	private Vector3 scanPos;
	private Vector3 offset;
	private Vector3 origPos;
	
	static public bool bDrag;
	// Use this for initialization
	void Start () {
		c = renderer.material.color;
		origPic = renderer.material.mainTexture;
		//pic = new Texture2D[4];
		index = 0;
		scanPos = this.transform.position;
		origPos = scanPos;
		bDrag = false;
	}
	
	// Update is called once per frame
	void Update () {
	
	}
	void OnMouseDown(){
		print("Mouse down");
		renderer.material.color = c;
		renderer.material.mainTexture = pic[index];
		index++;
		if (index == 3)
			index = 0;
		
		/
		screenPoint = Camera.main.WorldToScreenPoint(scanPos);
  	    offset = scanPos - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
		Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
	    Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset;
		//print(curPosition);
	    transform.position = curPosition;
	}
	void OnMouseEnter(){
		print("Mouse enter");
		index = 0;
		renderer.material.color = Color.red;
	}
	void OnMouseExit(){
		print("Mouse exit");
		renderer.material.color = c;
		renderer.material.mainTexture = origPic;
	}
	
	void OnMouseDrag()
	{
		bDrag = true;
	    Vector3 curScreenPoint = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z);
	    Vector3 curPosition = Camera.main.ScreenToWorldPoint(curScreenPoint) + offset;
	    transform.position = curPosition;
		print("curPosition"+curPosition);
	}
	
	void OnMouseUp(){
		print("mouse up");
		//transform.TransformPoint(origPos);
		bDrag = false;
		transform.position = origPos;
	}

}


 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值