首先给UIGrid添加UICenterOnChild脚本
在两个锁的点击事件中获取到UICenterOnChild CenterOn()方法进行传参 这样物体就能居中显示了
using UnityEngine;
using System.Collections;
public class OnCenterByOne : MonoBehaviour {
// Use this for initialization
public UICenterOnChild muicenterOnchild;
public GameObject mgrid;
public GameObject nextBtn;
public GameObject upBtn;
int number=2;
void Start () {
muicenterOnchild.CenterOn (mgrid.transform.GetChild (number).transform);
UIEventListener.Get (nextBtn.gameObject).onClick += NetxBtn;
UIEventListener.Get (upBtn.gameObject).onClick += UpBtn;
}
void NetxBtn(GameObject go){
//我那个是用Toggle 来判断当前在中间的是那个,你这个可以用一个int值来控制
if (number==3) {
nextBtn.gameObject.SetActive (false);
upBtn.gameObject.SetActive (true);
muicenterOnchild.CenterOn (mgrid.transform.GetChild (number+1).transform);
mgrid.transform.GetChild (number + 1).transform.localScale = new Vector3 (2, 2,2 );
mgrid.transform.GetChild (number).transform.localScale = new Vector3 (1, 1, 1);
number += 1;
}else {
muicenterOnchild.CenterOn (mgrid.transform.GetChild (number+1).transform);
mgrid.transform.GetChild (number + 1).transform.localScale = new Vector3 (2, 2, 2);
mgrid.transform.GetChild (number).transform.localScale = new Vector3 (1, 1, 1);
upBtn.gameObject.SetActive (true);
nextBtn.gameObject.SetActive (true);
number += 1;
}
}
void UpBtn(GameObject go){
if (number==1) {
upBtn.gameObject.SetActive (false);
muicenterOnchild.CenterOn (mgrid.transform.GetChild (number-1).transform);
mgrid.transform.GetChild (number - 1).transform.localScale = new Vector3 (2, 2, 2);
mgrid.transform.GetChild (number).transform.localScale = new Vector3 (1, 1, 1);
number -= 1;
}else {
muicenterOnchild.CenterOn (mgrid.transform.GetChild (number-1).transform);
mgrid.transform.GetChild (number - 1).transform.localScale = new Vector3 (2, 2, 2);
mgrid.transform.GetChild (number).transform.localScale = new Vector3 (1, 1, 1);
upBtn.gameObject.SetActive (true);
nextBtn.gameObject.SetActive (true);
number -= 1;
}
}
}