1 using UnityEngine; 2 using System.Collections; 3 4 public class course2 : MonoBehaviour { 5 6 public int size = 9; 7 public GameObject tileCube; 8 GameObject preTile; 9 GameObject ballTile; 10 // Use this for initialization 11 void Start () { 12 13 GreatGrid(); 14 15 } 16 /// <summary> 17 /// 创建底层方块 18 /// </summary> 19 void GreatGrid() 20 { 21 for (int i = 0; i < size; i++) 22 { 23 for (int j = 0; j < size; j++) 24 { 25 GameObject t= (GameObject)Instantiate(tileCube,new Vector3(i,0,j),Quaternion.identity); 26 if ((i+j)%2==0) 27 { 28 iTween.ColorTo(t,Color.black,0); 29 } 30 } 31 } 32 33 34 } 35 /// <summary> 36 /// 移动起来方块 37 /// </summary> 38 /// <param name="obj"></param> 39 void MoveTileUp(GameObject obj) 40 { 41 if (preTile != obj && preTile != null) 42 { 43 iTween.MoveTo(preTile,new Vector3(preTile.transform.position.x,0,preTile.transform.position.z),1); 44 if ((preTile.transform.position.x+preTile.transform.position.z)%2 == 0) 45 { 46 iTween.ColorTo(preTile, Color.black,0.5f); 47 }else 48 { 49 iTween.ColorTo(preTile, Color.white, 0.5f); 50 } 51 52 } 53 if (obj.transform.position.y == 0) 54 { 55 56 iTween.ColorTo(obj,Color.green,.5f); 57 iTween.MoveTo(obj,new Vector3(obj.transform.position.x,0.5f,obj.transform.position.z),0.5f); 58 preTile = obj; 59 } 60 61 } 62 63 public GameObject ball; 64 Vector3[] waypoints= new Vector3[2]; 65 int pointi; 66 67 68 69 //回调移动 sendmassage 回调到当前对象上要 70 void MoveToPoint() 71 { 72 if (pointi<2) 73 { 74 iTween.MoveTo(ball, iTween.Hash("position", waypoints[pointi], "speed", 10f, "easetype", "linear", "oncomplete", "MoveToPoint", "oncompletetarget", this.gameObject)); 75 pointi++; 76 } 77 78 } 79 void hehe() 80 { 81 print("hehehehehehehehe"); 82 } 83 84 85 // Update is called once per frame 86 void Update () { 87 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); 88 RaycastHit hit; 89 90 if (Physics.Raycast(ray,out hit)) 91 { 92 if (ballTile!=null)//小球所在的tile 93 { 94 iTween.MoveTo(ballTile.transform.gameObject,new Vector3(ballTile.transform.position.x,0,ballTile.transform.position.z),.5f); 95 iTween.ColorTo(ballTile.transform.gameObject,Color.red,0.5f); 96 } 97 98 if (hit.transform.tag == "tile") 99 { 100 print(hit.transform.position); 101 MoveTileUp(hit.transform.gameObject); 102 103 if (Input.GetMouseButtonDown(0)) 104 { 105 if (ballTile != null) 106 { 107 if ((ballTile.transform.position.x + ballTile.transform.position.z) % 2 == 0) 108 { 109 iTween.ColorTo(ballTile, Color.black, 0.5f); 110 } 111 else 112 { 113 iTween.ColorTo(ballTile, Color.white, 0.5f); 114 } 115 } 116 ballTile = hit.transform.gameObject; 117 118 pointi = 0; 119 waypoints[0] = new Vector3(hit.transform.position.x, 0.5f, ball.transform.position.z); 120 waypoints[1] = new Vector3(hit.transform.position.x, 0.5f, hit.transform.position.z); 121 MoveToPoint(); 122 } 123 124 } 125 else//如果点击的不是tile 则还原点击过的tile 126 { 127 if (preTile != null) 128 { 129 iTween.MoveTo(preTile, new Vector3(preTile.transform.position.x, 0, preTile.transform.position.z), 1); 130 if ((preTile.transform.position.x + preTile.transform.position.z) % 2 == 0) 131 { 132 iTween.ColorTo(preTile, Color.black, 0.5f); 133 } 134 else 135 { 136 iTween.ColorTo(preTile, Color.white, 0.5f); 137 } 138 } 139 } 140 } 141 142 143 } 144 }
原文:http://www.cnblogs.com/GGman/p/5174187.html