Unity物體跟隨滑鼠的實現
阿新 • • 發佈:2019-02-18
這裡主要實現的功能是:點選按鈕,生成物體,當放開滑鼠時,物體移動到固定位置(註明:採用的是NGUI外掛)。
首先,要考慮到的是,按下滑鼠、擡起滑鼠兩個事件的不同操作,所以採用的是UIEventTrigger,按下時為OnPress,擡起時為OnRelease。
給按鈕新增事件監聽(此處有多個按鈕)(移除事件為Remove):
接下來寫按下、擡起事件,其實就是生成一個預製體(obj = Instantiate (all_Parts)as GameObject;),此處要用到一個bool變數(比較懶沒有去寫委託),按下時為真,擡起時為假,在Update函式中判斷其真假,為真時,物體跟隨滑鼠移動。public void AddEvnetForButton(){ for (int i = 0; i < count; i++) { //EventDelegate.Add (btns_Left [i].onClick, OnPressEvent); EventDelegate pressEvent = new EventDelegate (OnPressEvent); btns_Left [i].GetComponent<UIEventTrigger> ().onPress.Add(pressEvent); EventDelegate releaseEvent = new EventDelegate (OnRelease); btns_Left [i].GetComponent<UIEventTrigger> ().onRelease.Add(releaseEvent); } }
移動的程式碼,(此處+ new Vector3(0,0,600)是為了讓其在螢幕深處,避免看不到):
if (isPress){
obj.transform.position = Camera.main.ScreenToWorldPoint (Input.mousePosition + new Vector3(0,0,600));
}
擡起事件中,將物體移到規定位置,並將bool值賦值為假。