public void onTouchEnded(TouchController con) { if (!m_active) { return; } //限制用户不能把小图块移出屏幕 Vector3 diff = m_active.transform.position; diff.x = Mathf.Min(diff.x, 0); diff.y = Mathf.Min(diff.y, 0); m_active.SetPosition(m_active.GetPosition() - (Vector2)diff); diff = m_active.transform.position; diff.x = Mathf.Max(diff.x - Screen.width, 0); diff.y = Mathf.Max(diff.y - Screen.height, 0); m_active.SetPosition(m_active.GetPosition() - (Vector2)diff); //如果用户把小图块移动到正确位置附近,就产生一个吸附效果 diff = m_active.GetPosition() - m_active.perfectPos; //print(diff); if (Mathf.Abs(diff.x) < 10 && Mathf.Abs(diff.y) < 10) { m_active.SetPosition(m_active.perfectPos); } m_active = null; }
//将video分割成rc*rc个小块,并保存到m_jigtiles里 public void Split(int rc) { RC = rc; for (int r = 0; r < rc; ++r) { for (int c = 0; c < rc; ++c) { GameObject obj = Instantiate(jigtile_mod); obj.name = string.Format("tile{0}{1}", r, c); obj.GetComponent <TouchController>().listeners.Add(this); JigTile tile = obj.GetComponent <JigTile>(); m_jigtiles.Add(tile); obj.transform.SetParent(this.gameObject.transform, false); } } }
public void onTouchBegan(TouchController con) { m_active = con.gameObject.GetComponent <JigTile>(); Debug.Assert(m_active); //print(m_active); }