Example #1
0
 public ChrTile(
     int tileIndex,
     int paletteIndex,
     LayerPriority layerPriority,
     TileFlip tileFlip)
 {
     value  = (ushort)(tileIndex & TileIndexMask);
     Value |= (paletteIndex & PaletteMask) << PaletteOffset;
     Value |= ((int)layerPriority & PriorityMask) << PriorityOffset;
     Value |= ((int)tileFlip & FlipMask) << FlipOffset;
 }
Example #2
0
	public RectTransform ShowWindow(string window, object data=null) {
		int index = m_Stack.FindIndex(x => x.name==window);
		UIView view = null;
		if (index >= 0) {
			view = m_Stack[index];
			m_Stack.RemoveAt(index);
		} else {
			Object obj = ResourceManager.Instance.LoadAsset("UI/"+window);
			GameObject panel = Instantiate(obj as GameObject);
			panel.name = window;
			LuaBehaviour lua = panel.GetComponent<LuaBehaviour>();
			if (lua == null) panel.AddComponent<LuaBehaviour>();

			RectTransform rt = panel.GetComponent<RectTransform>();
			rt.SetParent(Root);
			rt.sizeDelta = new Vector2(0, 0);
			rt.localScale = Vector3.one;
			rt.localPosition = new Vector3(0, 0, 0);

			view = new UIView{name=window,rt=rt};
		}

		// set layer
		LayerPriority layer = LayerPriority.Normal;
		if (m_PanelLayerMap.ContainsKey(window)) layer = m_PanelLayerMap[window];
		if (m_Stack.Count > 0) {
			int idx = 0;
			for (; idx < m_Stack.Count; idx ++) {
				LayerPriority layer2 = LayerPriority.Normal;
				if (m_PanelLayerMap.ContainsKey(m_Stack[idx].name)) layer2 = m_PanelLayerMap[m_Stack[idx].name];
				if (layer2 > layer) {
					break;
				}
			}
			if (idx == m_Stack.Count) {
				view.rt.SetAsLastSibling();
				m_Stack.Add(view);
			} else {
				int siblingIndex = m_Stack[idx].rt.GetSiblingIndex();
				for (int i = m_Stack.Count -1; i >= idx; i --) {// move back
					m_Stack[i].rt.SetSiblingIndex(m_Stack[i].rt.GetSiblingIndex() + 1);
				}
				view.rt.SetSiblingIndex(siblingIndex);

				m_Stack.Insert(idx, view);
			}
		} else {
			view.rt.SetSiblingIndex(Root.childCount-1);
			m_Stack.Add(view);
		}

		return view.rt;
	}