这是一段拖动物体的代码,比较简洁明了,对了解unity3d脚本概念有些帮助!在此加上注释分享! |
02 | var mouseOverColor = Color.blue; //声明变量为蓝色 |
03 | private var originalColor : Color; //声明变量存储本来颜色 |
04 | function Start () { |
05 | originalColor = renderer.sharedMaterial.color; //开始时得到物体本来着色 |
06 | } |
07 | function OnMouseEnter () { |
08 | renderer.material.color = mouseOverColor; //当鼠标滑过时改变物体颜色为蓝色 |
09 | } |
10 |
11 | function OnMouseExit () { |
12 | renderer.material.color = originalColor; //当鼠标滑出时恢复物体本来颜色 |
13 | } |
14 |
15 | function OnMouseDown () { |
16 | var screenSpace = Camera.main.WorldToScreenPoint(transform.position); //三维物体坐标转屏幕坐标 |
17 | //将鼠标屏幕坐标转为三维坐标,再算出物体位置与鼠标之间的距离 |
18 | var offset = transform.position - Camera.main.ScreenToWorldPoint(Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z)); |
19 | print( "down" ); |
20 | while (Input.GetMouseButton(0)) |
21 | { |
22 | //print("button0"); |
23 | var curScreenSpace = Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z); |
24 | var curPosition = Camera.main.ScreenToWorldPoint(curScreenSpace) + offset; |
25 | transform.position = curPosition; |
26 | yield; //这个很重要,循环执行 |
27 | } |
28 | } |
JS脚本格式……明天改成C#的试试