1.遊戲物件拖曳方法
using UnityEngine;
using System.Collections;
public class Sample : MonoBehaviour
{
void Update()
{
if (Input.GetMouseButton(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if(Physics.Raycast(ray , out hit))
{
Vector3 mousePosition = new Vector3(Input.mousePosition.x, Input.mousePosition.y, 10);
hit.transform.position = Camera.main.ScreenToWorldPoint(mousePosition);
}
}
}
}
// 補充 你的遊戲物件必須要有Collider射線才偵測的到!
|
2.UGUI物件拖曳方法
using UnityEngine;
using UnityEngine.EventSystems;
using System.Collections.Generic;
using System.Collections;
public class Sample : MonoBehaviour
{
void Update()
{
if (Input.GetMouseButton(0))
{
PointerEventData pointer = new PointerEventData(EventSystem.current);
pointer.position = Input.mousePosition;
List<RaycastResult> raycastResults = new List<RaycastResult>();
EventSystem.current.RaycastAll(pointer, raycastResults);
if (raycastResults.Count > 0)
{
raycastResults[0].gameObject.transform.position = Input.mousePosition;
}
}
}
}
|
上面這兩個方法都是一些基本功能
使用上你可能會發現速度移動太快的話 物件可能就會停住了
那是因為都是在檢查滑鼠指到的位置
如果你速度太快滑鼠就會沒有指到那個物件
就不會執行獲得新的座標了
如果不知道怎麼解決的話可以留言問我喔
也非常感謝到我的FB粉絲專頁按讚
留言列表