// Use this for initialization //地图初始化 void Start() { RectTransform rectTransform = transform.GetComponent <RectTransform>(); size = (rectTransform.rect.height - padding * 2 - yLength * divider) / yLength; for (int i = 0; i < xLength; i++) { for (int j = 0; j < yLength; j++) { GameObject obj = new GameObject("LoadItem"); obj.transform.SetParent(transform); Image loadImage = obj.AddComponent <Image>(); Vector2 loadPosition = new Vector2(i, j); LoadItem loadItem = new LoadItem(loadImage, loadPosition); map.Add(loadPosition, loadItem); OnLoadClickListener onLoadClickListener = OnLoadClickListener.GetLoadClickListenr(loadItem); onLoadClickListener.Load = loadItem; onLoadClickListener.OnClick = this.OnClick; onLoadClickListener.OnEnter = this.OnEnter; onLoadClickListener.OnMouseDown = this.OnMouseDown; onLoadClickListener.OnMouseUp = this.OnMouseUp; RectTransform objRect = obj.GetComponent <RectTransform>(); objRect.anchorMin = Vector2.one / 2; objRect.anchorMax = Vector2.one / 2; objRect.sizeDelta = new Vector2(size, size); objRect.localScale = Vector2.one; objRect.localPosition = new Vector3((size + divider) * i + size / 2 - (rectTransform.rect.width - padding * 2) / 2, (size + divider) * j + size / 2 - (rectTransform.rect.height - padding * 2) / 2); objRect.localRotation = Quaternion.identity; } } }
public static OnLoadClickListener GetLoadClickListenr(LoadItem load) { OnLoadClickListener listener = load.image.gameObject.GetComponent <OnLoadClickListener>(); if (listener == null) { listener = load.image.gameObject.AddComponent <OnLoadClickListener>(); } return(listener); }