public void Inite() { startpos = new Vector2(transform.localPosition.x, transform.position.y); Panel_show10 = transform.FindChild("Panel_show0").gameObject; bottompanel = transform.FindChild("Panel_bottom").gameObject; BackgroundImage = bottompanel.transform.FindChild("BackImage").gameObject; BottomItemsHigh = bottompanel.GetComponent <RectTransform> ().rect.height; GridLayoutGroup bottomglg = bottompanel.GetComponent <GridLayoutGroup> (); //使用Gridlayout初始化cellsize的大小,不能控制锚点,在Inspectors以取消勾选 GridLayoutGroup glg = Panel_show10.GetComponent <GridLayoutGroup> (); bottomglg.cellSize = new Vector2((Screen.width / 4) + Panel_show10cellX, (Screen.height / 8)); glg.cellSize = new Vector2(Screen.width + Panel_show10cellX, Screen.height - bottomglg.cellSize.y); glg.spacing = new Vector2(Panel_show10Xspeacing, Panel_show10cellYspeacing); parentwidth = Panel_show10.transform.GetChild(0).GetComponent <RectTransform> ().rect.size.x; destinations = new Vector3[Panel_show10.transform.childCount]; //不使用Gridlayout初始化Panel_show10子物体 for (int i = 0; i < Panel_show10.transform.childCount; i++) { Debug.Log(parentwidth); Panel_show10.transform.GetChild(i).localPosition = new Vector3((i) * parentwidth, 0, 0); destinations [i] = new Vector3((i) * parentwidth, Panel_show10.transform.localPosition.y, 0); } //不使用Gridlayout初始化bottompanel子物体 toggles = new Toggle[bottompanel.transform.childCount - 1]; for (int i = 0; i < bottompanel.transform.childCount; i++) { //要添加最大按钮下的背景移动效果,所以改变bottompanel的结构,限制Image添加进去,切其ISblackCast要勾选掉 if (bottompanel.transform.GetChild(i).gameObject.GetComponentInChildren <Toggle> ()) { toggles [i] = bottompanel.transform.GetChild(i).gameObject.GetComponentInChildren <Toggle> (); itemschange change = toggles[i].gameObject.AddComponent <itemschange> (); change.uimanager = this; toggles[i].onValueChanged.AddListener(OnToggle); } } equalsL = (bottompanel.GetComponent <RectTransform> ().rect.width) / (toggles.Length - 1 + scaletitle); //初始化字典: // for (int i = 0; i < toggles.Length; i++) // { // panel_toggle.Add (toggles[i].gameObject,Panel_show10.transform.GetChild(i).gameObject); // } //初始化状态为选中第三个按钮 uimanagertogglechange = togglechange.toggle2; current = toggles [0].gameObject; templerp = Panel_show10.transform.localPosition; }
/// <summary> /// 弹起时完成剩下动作 /// </summary> /// <param name="eventData">Event data.</param> public void OnPointerUp(PointerEventData eventData) { isdrag = false; Vector3 tempdestination = startpos - eventData.position; if (nowpanle >= 0 && nowpanle <= 4) { if (deltaX > 10f || (deltaX > 1f && Vector3.Distance(startpos, eventData.position) > 300f)) { nowpanle--; } if (deltaX < -10f || (deltaX < -1f && Vector3.Distance(startpos, eventData.position) > 300f)) { nowpanle++; } } switch (nowpanle) { case 0: case -1: uimanagertogglechange = togglechange.toggle0; break; case 1: uimanagertogglechange = togglechange.toggle1; break; case 2: uimanagertogglechange = togglechange.toggle2; break; case 3: uimanagertogglechange = togglechange.toggle3; break; case 4: case 5: uimanagertogglechange = togglechange.toggle4; break; default: break; } }
void Update() { switch (uimanagertogglechange) { case togglechange.none: for (int i = 0; i < toggles.Length; i++) { toggles [i].transform.localScale = new Vector3(1f, 1f, 1f); } break; case togglechange.toggle0: LerpPanel(0); break; case togglechange.toggle1: LerpPanel(1); break; case togglechange.toggle2: LerpPanel(2); break; case togglechange.toggle3: LerpPanel(3); break; case togglechange.toggle4: LerpPanel(4); break; } //Touch控制拖动 #if UNITY_ANDRIOD if (Input.touchCount >= 1) { if (Input.GetTouch(0).phase == TouchPhase.Began) { Debug.Log("BeginTouch"); isdrag = true; deltaX = 0f; startpos = Input.GetTouch(0).position; } if (Input.GetTouch(0).phase == TouchPhase.Moved) { deltaX = Input.GetTouch(0).position.x; Panel_show10.transform.localPosition += new Vector3(Input.GetTouch(0).position.x, 0f, 0f); } if (Input.GetTouch(0).phase == TouchPhase.Canceled) { isdrag = false; // Vector3 tempdestination = startpos - Input.GetTouch (0).position; if (nowpanle >= 0 && nowpanle <= 4) { if (deltaX > 10f || (deltaX > 1f && Vector3.Distance(startpos, Input.GetTouch(0).position) > 300f)) { nowpanle--; } if (deltaX < -10f || (deltaX < -1f && Vector3.Distance(startpos, Input.GetTouch(0).position) > 300f)) { nowpanle++; } } switch (nowpanle) { case 0: case -1: uimanagertogglechange = togglechange.toggle0; break; case 1: uimanagertogglechange = togglechange.toggle1; break; case 2: uimanagertogglechange = togglechange.toggle2; break; case 3: uimanagertogglechange = togglechange.toggle3; break; case 4: case 5: uimanagertogglechange = togglechange.toggle4; break; default: break; } } } #endif }