Unity大螢幕觸控外掛TouchScript的使用筆記
阿新 • • 發佈:2018-11-30
Unity大螢幕觸控外掛TouchScript的使用筆記
先新增相應元件
委託
//其他長按,雙擊等用法相同
void Start () {
//點選
GetComponent<PressGesture>().Pressed += pressHandler;
//擡起
GetComponent<ReleaseGesture>().Released += releasdHandler;
}
private void pressHandler(object sender, EventArgs e){}
private void ReleaseGesture(object sender, EventArgs e){}
private void OnDisable()
{
GetComponent<PressGesture>().Pressed -= pressHandler;
GetComponent<ReleaseGesture>().Released -= releasdHandler;
}
獲得在物體上的觸控點的list組
IList<Pointer> p = GetComponent<PressGesture>().ActivePointers;
//Pointer的屬性(專案中用到的一些屬性)
//TouchManager分配給觸控點的ID
public int Id { get; private set; }
//觸控點的型別,滑鼠和觸控
public PointerType Type { get; protected set; }
//觸控點的位置
public Vector2 Position
{
get { return position; }
set { newPosition = value; }
}
在press點選事件中每觸控一次傳送一次觸控資料,不包含上次資料,只能在pressHandler()中獲得
使用TouchManager獲得觸控點
//TouchManager.Instance內有很多方法,具體看原始碼
void Start ()
{
//每次有觸控點加入時都會觸發,啟動時會有id為-1的滑鼠點進入
TouchManager.Instance.PointersAdded += pointersAddedHandler;
}
private void pointersAddedHandler(object sender, PointerEventArgs e)
{
foreach (Pointer p in e.Pointers) {
if(p.Id == -1)
{
TouchManager.Instance.CancelPointer(-1, true);//清除id為-1的點
}
}
}