// Use this for initialization void Start() { float verticalSize = Camera.main.orthographicSize * 2.0f; float horizontalSize = verticalSize * Screen.width / Screen.height; GameObject rock = GameObject.Find ("Rock"); MapGeneratorInternal generator = new MapGeneratorInternal (new Vector2(horizontalSize, verticalSize)); for (int i = 0; i < 10000; i++) { generator.Generate (); } Rect center1 = new Rect (); Rect center2 = new Rect (); Rect center3 = new Rect (); center1.Set (horizontalSize / 2, 0, horizontalSize / 100, verticalSize); center2.Set (0, verticalSize / 2, horizontalSize, verticalSize / 100); center2.Set (horizontalSize * 0.45f, verticalSize * 0.45f, horizontalSize * 0.10f, verticalSize * 0.10f); foreach(var rect in generator.Rects){ if(Random.Range(0,2) != 0) continue; if(rect.Overlaps(center1) || rect.Overlaps(center2)) continue; Vector3 center = new Vector3(rect.x + rect.width/2 - horizontalSize/2, rect.y + rect.height / 2-verticalSize/2); GameObject rock2 = Instantiate (rock, center, Quaternion.identity) as GameObject; PolyMesh a = rock2.GetComponent<PolyMesh> (); a.makeUnique (); a.keyPoints.Clear (); a.isCurve.Clear (); a.keyPoints.Add(new Vector3(-rect.width/2, -rect.height/2)); a.keyPoints.Add(new Vector3(rect.width/2, -rect.height/2)); a.keyPoints.Add(new Vector3(rect.width/2, rect.height/2)); a.keyPoints.Add(new Vector3(-rect.width/2, rect.height/2)); for(int i =0; i< a.keyPoints.Count; i++) a.isCurve.Add(false); a.BuildMesh (); } }
public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { EditorGUI.BeginProperty(position, label, property); //get data SerializedProperty axisX = property.FindPropertyRelative("axisX"); SerializedProperty axisY = property.FindPropertyRelative("axisY"); SerializedProperty axisZ = property.FindPropertyRelative("axisZ"); position = EditorGUI.PrefixLabel(position, GUIUtility.GetControlID(FocusType.Passive), label); float width = position.width; width /= 4.0f; position.Set(position.x, position.y, width, position.height); GUIContent labelAxis = new GUIContent("X"); EditorGUIUtility.labelWidth = GUI.skin.label.CalcSize(labelAxis).x*3; axisX.boolValue = EditorGUI.Toggle(position, labelAxis, axisX.boolValue); position.x += width; labelAxis = new GUIContent("Y"); axisY.boolValue = EditorGUI.Toggle(position, labelAxis, axisY.boolValue); position.x += width; labelAxis = new GUIContent("Z"); axisZ.boolValue = EditorGUI.Toggle(position, labelAxis, axisZ.boolValue); EditorGUI.EndProperty(); }
public static Rect CaculateInteractiveRect( Rect r1, Rect r2 ) { Rect result = new Rect(r1); if( result.xMin < r2.xMin ) { result.xMin = r2.xMin; } if( result.yMin < r2.yMin ) { result.yMin = r2.yMin; } if( result.xMax > r2.xMax ) { result.xMax = r2.xMax; } if( result.yMax > r2.yMax ) { result.yMax = r2.yMax; } if( result.width < 0 || result.height < 0 ) { result.Set(0,0,0,0); } return result; }
void OnGUI() { Rect rect = new Rect(0, 0, 200, 20); GUI.Label(rect, "Mesh Vertex Count: " + vertexCount); rect.Set(rect.xMin, rect.yMin + 20, rect.width, rect.height); GUI.Label(rect, "Mesh Triangle Count: " + triangleCount); rect.Set(rect.xMin, rect.yMin + 20, rect.width, rect.height); GUI.Label(rect, "Mesh Count: " + objPool.Count); rect.Set(rect.xMin, rect.yMin + 20, rect.width, rect.height); GUI.Label(rect, "Total Vertex Count: " + vertexCount * objPool.Count); rect.Set(rect.xMin, rect.yMin + 20, rect.width, rect.height); GUI.Label(rect, "Total Triangle Count: " + triangleCount * objPool.Count); rect.Set(rect.xMin, rect.yMin + 20, rect.width, rect.height); if (GUI.Button(rect, "Add Obj")) { GameObject newObj = GameObject.Instantiate(obj) as GameObject; newObj.transform.parent = root; newObj.transform.localPosition = new Vector3(Random.Range(-1f, 1f), Random.Range(-1f, 1f), Random.Range(0f, 1f)); objPool.Add(newObj); } rect.Set(rect.xMin, rect.yMin + 20, rect.width, rect.height); if (GUI.Button(rect, "Run Static Batch")) { StaticBatchingUtility.Combine(root.gameObject); } rect.Set(rect.xMin, rect.yMin + 20, rect.width, rect.height); }
public Node(Vector2 dimension, Vector2 position) { Rectangle = new Rect (position, dimension); Rectangle.Set ((int)Rectangle.xMin, (int)Rectangle.yMin, (int)Rectangle.width, (int)Rectangle.height); LeftChild = null; RightChild = null; Room = null; Level = 0; }
public static void DrawCrossHair(SelectionType mode) { int cursorSizeX = 5; int cursorSizeY = 5; Color col = Color.green; Color tra = new Color(0.0f, 0.0f, 0.0f, 0.0f); // Initialize crosshair texture Texture2D tex = new Texture2D(cursorSizeX, cursorSizeY); for (int x = 0; x < cursorSizeX; x++) { for (int y = 0; y < cursorSizeY; y++) { if (x == 2 || y == 2) tex.SetPixel(x, y, col); else tex.SetPixel(x, y, tra); } } tex.SetPixel(2, 2, col); tex.Apply(); // Determine where to draw crosshair Rect finalPos = new Rect(); switch(mode) { case SelectionType.MIDDLE_SCREEN: finalPos.Set( (Screen.width/2) - (cursorSizeX/2), (Screen.height/2) - (cursorSizeY/2), cursorSizeX, cursorSizeY ); break; case SelectionType.MOUSE: finalPos.Set( Event.current.mousePosition.x - (cursorSizeX/2), Event.current.mousePosition.y - (cursorSizeY/2), cursorSizeX, cursorSizeY ); break; } // Draw crosshair GUI.DrawTexture (finalPos, tex); }
public static Rect GetCameraBounds(Camera _camera, float _tolerance = 5) { Rect _rct = new Rect(0, 0, 0, 0); Vector3 upperLeft = _camera.ViewportToWorldPoint(new Vector3(0, 0, _camera.farClipPlane)); Vector3 lowerRight = _camera.ViewportToWorldPoint(new Vector3(1, 1, _camera.farClipPlane)); _rct.Set(upperLeft.x - _tolerance, upperLeft.y - _tolerance, lowerRight.x - upperLeft.x + _tolerance * 2, lowerRight.y - upperLeft.y + _tolerance * 2); return _rct; }
void OnGUI() { if (!finished) { Rect moveRect = new Rect((Screen.width - 300) - 25, Screen.height * 0.5f, 300, 30); GUI.Label(moveRect, "Shadow's Name:"); moveRect.Set(moveRect.left, moveRect.top + 30, moveRect.width, moveRect.height); shadowsName = GUI.TextField(moveRect, shadowsName, 28); moveRect.Set(moveRect.left, moveRect.top + 45, moveRect.width, moveRect.height); GUI.Label(moveRect, "Your Name:"); moveRect.Set(moveRect.left, moveRect.top + 30, moveRect.width, moveRect.height); yourName = GUI.TextField(moveRect, yourName, 28); moveRect.Set(moveRect.left, moveRect.top + 45, moveRect.width, moveRect.height); if (GUI.Button(moveRect, "Submit to Hall of Shadows")) { ShadowSerializer.SerializeMyShadow(shadowContoller.toyContainer); StartCoroutine(ShadowSerializer.Submit(shadowsName, yourName, HALL_OF_SHADOWS)); finished = true; } moveRect.Set(moveRect.left, moveRect.top + 45, moveRect.width, moveRect.height); if (GUI.Button(moveRect, "Don't Submit (But Finish)")) { ShadowSerializer.SerializeMyShadow(shadowContoller.toyContainer); Application.LoadLevel(HALL_OF_SHADOWS); } moveRect.Set(moveRect.left, moveRect.top + 45, moveRect.width, moveRect.height); if (GUI.Button(moveRect, "Continue Working on Shadow")) { shadowContoller.CancelZoom(); } } }
static bool Rect_Set__Single__Single__Single__Single(JSVCall vc, int argc) { int len = argc; if (len == 4) { System.Single arg0 = (System.Single)JSApi.getSingle((int)JSApi.GetType.Arg); System.Single arg1 = (System.Single)JSApi.getSingle((int)JSApi.GetType.Arg); System.Single arg2 = (System.Single)JSApi.getSingle((int)JSApi.GetType.Arg); System.Single arg3 = (System.Single)JSApi.getSingle((int)JSApi.GetType.Arg); UnityEngine.Rect argThis = (UnityEngine.Rect)vc.csObj; argThis.Set(arg0, arg1, arg2, arg3); JSMgr.changeJSObj(vc.jsObjID, argThis); } return(true); }
static int QPYX_Set_YXQP(IntPtr L_YXQP) { try { ToLua.CheckArgsCount(L_YXQP, 5); UnityEngine.Rect QPYX_obj_YXQP = (UnityEngine.Rect)ToLua.CheckObject(L_YXQP, 1, typeof(UnityEngine.Rect)); float QPYX_arg0_YXQP = (float)LuaDLL.luaL_checknumber(L_YXQP, 2); float QPYX_arg1_YXQP = (float)LuaDLL.luaL_checknumber(L_YXQP, 3); float QPYX_arg2_YXQP = (float)LuaDLL.luaL_checknumber(L_YXQP, 4); float QPYX_arg3_YXQP = (float)LuaDLL.luaL_checknumber(L_YXQP, 5); QPYX_obj_YXQP.Set(QPYX_arg0_YXQP, QPYX_arg1_YXQP, QPYX_arg2_YXQP, QPYX_arg3_YXQP); ToLua.SetBack(L_YXQP, 1, QPYX_obj_YXQP); return(0); } catch (Exception e_YXQP) { return(LuaDLL.toluaL_exception(L_YXQP, e_YXQP)); } }
static int Set(IntPtr L) { try { ToLua.CheckArgsCount(L, 5); UnityEngine.Rect obj = (UnityEngine.Rect)ToLua.CheckObject(L, 1, typeof(UnityEngine.Rect)); float arg0 = (float)LuaDLL.luaL_checknumber(L, 2); float arg1 = (float)LuaDLL.luaL_checknumber(L, 3); float arg2 = (float)LuaDLL.luaL_checknumber(L, 4); float arg3 = (float)LuaDLL.luaL_checknumber(L, 5); obj.Set(arg0, arg1, arg2, arg3); ToLua.SetBack(L, 1, obj); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
static public int Set(IntPtr l) { try{ UnityEngine.Rect self = (UnityEngine.Rect)checkSelf(l); System.Single a1; checkType(l, 2, out a1); System.Single a2; checkType(l, 3, out a2); System.Single a3; checkType(l, 4, out a3); System.Single a4; checkType(l, 5, out a4); self.Set(a1, a2, a3, a4); setBack(l, self); return(0); } catch (Exception e) { LuaDLL.luaL_error(l, e.ToString()); return(0); } }
public static tk2dSpriteCollectionData CreateFromTexture(GameObject parentObject, Texture texture, tk2dSpriteCollectionSize size, Vector2 textureDimensions, string[] names, Rect[] regions, Rect[] trimRects, Vector2[] anchors, bool[] rotated) { tk2dSpriteCollectionData data = ((parentObject == null) ? new GameObject("SpriteCollection") : parentObject).AddComponent<tk2dSpriteCollectionData>(); data.Transient = true; data.version = 3; data.invOrthoSize = 1f / size.OrthoSize; data.halfTargetHeight = size.TargetHeight * 0.5f; data.premultipliedAlpha = false; string name = "tk2d_custom/BlendVertexColorWithMask"; data.material = new Material(Shader.Find(name)); data.material.mainTexture = texture; data.materials = new Material[] { data.material }; data.textures = new Texture[] { texture }; data.buildKey = UnityEngine.Random.Range(0, 0x7fffffff); float scale = (2f * size.OrthoSize) / size.TargetHeight; Rect trimRect = new Rect(0f, 0f, 0f, 0f); data.spriteDefinitions = new tk2dSpriteDefinition[regions.Length]; for (int i = 0; i < regions.Length; i++) { bool flag = (rotated != null) && rotated[i]; if (trimRects != null) { trimRect = trimRects[i]; } else if (flag) { trimRect.Set(0f, 0f, regions[i].height, regions[i].width); } else { trimRect.Set(0f, 0f, regions[i].width, regions[i].height); } data.spriteDefinitions[i] = CreateDefinitionForRegionInTexture(names[i], textureDimensions, scale, regions[i], trimRect, anchors[i], flag); } foreach (tk2dSpriteDefinition definition in data.spriteDefinitions) { definition.material = data.material; } return data; }
void UpdateTransform() { // Break out if anchor camera is not bound if (AnchorCamera == null) { return; } float pixelScale = 1; // size of one pixel Vector3 position = myTransform.localPosition; // we're ignoring perspective tk2dCameras for now tk2dCamera = (AnchorTk2dCamera != null && AnchorTk2dCamera.CameraSettings.projection != tk2dCameraSettings.ProjectionType.Perspective) ? AnchorTk2dCamera : null; Rect rect = new Rect(); if (tk2dCamera != null) { rect = anchorToNativeBounds ? tk2dCamera.NativeScreenExtents : tk2dCamera.ScreenExtents; pixelScale = tk2dCamera.GetSizeAtDistance( 1 ); } else { rect.Set(0, 0, AnchorCamera.pixelWidth, AnchorCamera.pixelHeight); } float y_bot = rect.yMin; float y_top = rect.yMax; float y_ctr = (y_bot + y_top) * 0.5f; float x_lhs = rect.xMin; float x_rhs = rect.xMax; float x_ctr = (x_lhs + x_rhs) * 0.5f; Vector3 anchoredPosition = Vector3.zero; switch (AnchorPoint) { case tk2dBaseSprite.Anchor.UpperLeft: anchoredPosition = new Vector3(x_lhs, y_top, position.z); break; case tk2dBaseSprite.Anchor.UpperCenter: anchoredPosition = new Vector3(x_ctr, y_top, position.z); break; case tk2dBaseSprite.Anchor.UpperRight: anchoredPosition = new Vector3(x_rhs, y_top, position.z); break; case tk2dBaseSprite.Anchor.MiddleLeft: anchoredPosition = new Vector3(x_lhs, y_ctr, position.z); break; case tk2dBaseSprite.Anchor.MiddleCenter: anchoredPosition = new Vector3(x_ctr, y_ctr, position.z); break; case tk2dBaseSprite.Anchor.MiddleRight: anchoredPosition = new Vector3(x_rhs, y_ctr, position.z); break; case tk2dBaseSprite.Anchor.LowerLeft: anchoredPosition = new Vector3(x_lhs, y_bot, position.z); break; case tk2dBaseSprite.Anchor.LowerCenter: anchoredPosition = new Vector3(x_ctr, y_bot, position.z); break; case tk2dBaseSprite.Anchor.LowerRight: anchoredPosition = new Vector3(x_rhs, y_bot, position.z); break; } Vector3 screenAnchoredPosition = anchoredPosition + new Vector3(pixelScale * offset.x, pixelScale * offset.y, 0); if (tk2dCamera == null) { // not a tk2dCamera, we need to transform Vector3 worldAnchoredPosition = AnchorCamera.ScreenToWorldPoint( screenAnchoredPosition ); if (myTransform.position != worldAnchoredPosition) { myTransform.position = worldAnchoredPosition; } } else { Vector3 oldPosition = myTransform.localPosition; if (oldPosition != screenAnchoredPosition) { myTransform.localPosition = screenAnchoredPosition; } } }
void OnGUI() { if(Event.current.type == EventType.mouseMove) { float y = Event.current.mousePosition.y - interval * 3 - buttonHeight; int nowHover = y < 0 ? -1 : (int)(y / lineHeight); if(nowHover != hover) { hover = nowHover; Repaint(); } } else { Rect rect = new Rect(interval, interval, (size.x - 3 * interval) * 0.5f, buttonHeight); if (GUI.Button(rect, "Nothing")) mask = 0; rect.x += rect.width + interval; if (GUI.Button(rect, "Everything")) mask = ~0; rect.Set(0, rect.yMax + interval, size.x, 1); EditorGUI.DrawRect(rect, borderColor); rect.Set(interval, rect.y + interval, size.x - interval, lineHeight); int count = 0; for (int i = 0; i < 32; i++) { if (layerNames[i] != null) { if (hover == count) { rect.xMin = 0; EditorGUI.DrawRect(rect, hoverColor); rect.xMin = interval; } mask = mask.SetBit(i, GUI.Toggle(rect, mask.GetBit(i), layerNames[i])); GUI.Label(rect, i.ToString(), rightAlign); rect.y += lineHeight; count++; } } rect.Set(0, 0, size.x, size.y); EditorKit.DrawWireRect(rect, borderColor, 1); } }
//-------- private void addModsSlider(int winID) { int mod_num = mp.KeyCount; Rect baseRect = pv.InsideRect(this.winRect); Rect headerRect = new Rect(baseRect.x, baseRect.y, baseRect.width, pv.Line("H3")); Rect scrollRect = new Rect(baseRect.x, baseRect.y + headerRect.height + pv.Margin ,baseRect.width + pv.PropPx(5), baseRect.height - headerRect.height - pv.Margin); Rect conRect = new Rect(0, 0 ,scrollRect.width - pv.Sys_("HScrollBar.Width") - pv.Margin , 0); Rect outRect = new Rect(); GUIStyle lStyle = "label"; GUIStyle tStyle = "toggle"; Color color = new Color(1f, 1f, 1f, 0.98f); for (int i=0; i<mod_num; i++) { string key = mp.sKey[i]; if (mp.CantDisable.Contains(key)) mp.bEnabled[key] = true; if (checkWS(key)) mp.bEnabled[key] = false; conRect.height += pv.Line("H1"); if(mp.sType[key] != "toggle" && mp.bEnabled[key]) { for (int j=0; j<mp.ValCount(key); j++) conRect.height += pv.Line("H1"); conRect.height += pv.Margin * 2; } else conRect.height += pv.Margin; } lStyle.normal.textColor = color; tStyle.normal.textColor = color; lStyle.fontSize = pv.Font("H3"); drawWinHeader(headerRect, "Mods Slider", lStyle); // スクロールビュー scrollViewVector = GUI.BeginScrollView(scrollRect, scrollViewVector, conRect); // 各modスライダー outRect.Set(0, 0, conRect.width, 0); for (int i=0; i<mod_num; i++) { string key = mp.sKey[i]; //---- outRect.width = conRect.width; outRect.height = pv.Line("H1"); color = (mp.bEnabled[key]) ? new Vector4(1f, 1f, 1f, 0.98f) : new Vector4(0.8f, 0.8f, 0.8f, 0.8f); lStyle.normal.textColor = color; tStyle.normal.textColor = color; if (mp.CantDisable.Contains(key) || checkWS(key)) // ON/OFFフラグの無いmodとWIDESLIDER無効化状態でのWS必須modはトグル非表示 { string s = mp.sDescription[key]+" ("+key+")"; lStyle.fontSize = pv.Font("H1"); if (checkWS(key)) { s = "WIDESLIDER必須:" + s; lStyle.normal.textColor = new Vector4(0.8f, 0.1f, 0.1f, 0.9f); } GUI.Label(outRect, s, lStyle); } else { tStyle.fontSize = pv.Font("H1"); mp.bEnabled[key] = GUI.Toggle(outRect, mp.bEnabled[key], mp.sDescription[key]+" ("+key+")", tStyle); } outRect.y += outRect.height; if (mp.sType[key] == "toggle" || !mp.bEnabled[key]) { outRect.y += pv.Margin; continue; } //---- int val_num = mp.ValCount(key); for (int j=0; j<val_num; j++) { string prop = mp.sPropName[key][j]; float value = mp.fValue[key][prop]; float vmin = mp.fVmin[key][prop]; float vmax = mp.fVmax[key][prop]; string label = mp.sLabel[key][prop] +" : "+ value.ToString("F"); string vType = mp.sVType[key][prop]; outRect.width = conRect.width; outRect.height = pv.Line("H1"); lStyle.fontSize = pv.Font("H1"); if (value < vmin) value = vmin; if (value > vmax) value = vmax; if (vType == "scale" && vmin < 1f) { if (vmin < 0f) vmin = 0f; if (value < 0f) value = 0f; float tmpmin = -Mathf.Abs(vmax - 1f); float tmpmax = Mathf.Abs(vmax - 1f); float tmp = (value < 1f) ? tmp = Mathf.Abs((1f-value)/(1f-vmin)) * tmpmin : value - 1f; if(tmp < tmpmin) tmp = tmpmin; if(tmp > tmpmax) tmp = tmpmax; tmp = drawModValueSlider(outRect, tmp, tmpmin, tmpmax, label, lStyle); mp.fValue[key][prop] = (tmp < 0f) ? 1f - tmp/tmpmin * Mathf.Abs(1f-vmin) : 1f + tmp; } else if (vType == "int") { value = (int)Mathf.Round(value); mp.fValue[key][prop] = (int)Mathf.Round(drawModValueSlider(outRect, value, vmin, vmax, label, lStyle)); } else mp.fValue[key][prop] = drawModValueSlider(outRect, value, vmin, vmax, label, lStyle); outRect.y += outRect.height; } outRect.y += pv.Margin * 2; } GUI.EndScrollView(); GUI.DragWindow(); if (GUI.changed || !oneLoad) setExSaveData(); }
/// <summary> /// Draws the player health readout. /// </summary> void drawPlayerHealthReadout() { if(playerController.wasPlayerHit){ playerHealthbarWidth -= healthScaleRemovalValue; } Rect healthBarRect = new Rect (screenWidth - playerHealthbarWidth, screenHeight - playerHealthbarHeight, playerHealthbarWidth, playerHealthbarHeight); Rect healthBarLabelRect = new Rect (screenWidth - defaultPlayerHealthbarWidth, screenHeight - playerHealthbarHeight, defaultPlayerHealthbarWidth, playerHealthbarHeight); GUI.DrawTexture (healthBarRect, playerHealthbar, ScaleMode.StretchToFill, true, 0.0f); healthBarRect.Set (healthBarRect.x, healthBarRect.y, healthBarRect.width, healthBarRect.height); GUI.Label (healthBarLabelRect, "Health", boxGUIStyle); playerController.setWasPlayerHit(false); }
/// <summary> /// Draws the warp menu. /// </summary> /// <param name="originPosition">Origin position.</param> void drawWarpMenu(Rect originPosition) { originPosition.Set (originPosition.x + defaultButtonWidth, originPosition.y, defaultButtonWidth, defaultButtonHeight); // This will warp the player to the home base scene if (GUI.Button (originPosition, levelName)) { Application.LoadLevel (levelName); } }
/// <summary> /// Draws the resources readout. /// </summary> void drawResourcesReadout() { // Make a background box for the container "Resources", this displays stats, resources, thats about it //This will display the read out of current resources collected by the player//Index – ResouceName //1 – Aluminum //2 – Copper //3 – Diamond //4 – Gold // 5 – Hydrogen // 6 – Iron // 7 – Lead // 8 – Platinum // 9 – Unobtanium // 10- Uranium // 0 – Asteroid drawAGUIBox (new Rect ((screenWidth / 2) - ((defaultButtonWidth * 3) / 2), 10, (defaultButtonWidth * 3), screenHeight), "Inventory"); //asteroid, Iron, copper, Aluminum, Hydrogen tier 1 Rect originRect = new Rect ((screenWidth / 2) - ((defaultButtonWidth * 3) / 2), 10, defaultButtonWidth, defaultButtonHeight); Rect originalOriginRect = new Rect (originRect.x, originRect.y, defaultButtonWidth, defaultButtonHeight); //Tier 1 originRect.Set (originRect.x + 10, originRect.y + (asteroidIcon.height / 2), defaultButtonWidth, defaultButtonHeight); drawAResource (originRect, 1, "Asteroid", asteroidIcon, 0); originRect.Set (originRect.x, originRect.y + (asteroidIcon.height / 2), defaultButtonWidth, defaultButtonHeight); drawAResource (originRect, 1, "Iron", ironIcon, 6); originRect.Set (originRect.x, originRect.y + (asteroidIcon.height / 2), defaultButtonWidth, defaultButtonHeight); drawAResource (originRect, 1, "Copper", copperIcon, 2); originRect.Set (originRect.x, originRect.y + (asteroidIcon.height / 2), defaultButtonWidth, defaultButtonHeight); drawAResource (originRect, 1, "Aluminum", alumIcon, 1); originRect.Set (originRect.x, originRect.y + (asteroidIcon.height / 2), defaultButtonWidth, defaultButtonHeight); drawAResource (originRect, 1, "Hydrogen", hydrogenIcon, 5); //Tier 2 originRect.Set (originalOriginRect.x + defaultButtonWidth, originalOriginRect.y + (asteroidIcon.height / 2), defaultButtonWidth, defaultButtonHeight); drawAResource (originRect, 2, "Platinum", platIcon, 8); originRect.Set (originRect.x, originRect.y + (asteroidIcon.height / 2), defaultButtonWidth, defaultButtonHeight); drawAResource (originRect, 2, "Gold", goldIcon, 4); originRect.Set (originRect.x, originRect.y + (asteroidIcon.height / 2), defaultButtonWidth, defaultButtonHeight); drawAResource (originRect, 2, "Lead", leadIcon, 7); //Tier 3 originRect.Set (originRect.x, originRect.y + (asteroidIcon.height / 2), defaultButtonWidth, defaultButtonHeight); drawAResource (originRect, 3, "Uranium", uranIcon, 10); originRect.Set (originRect.x, originRect.y + (asteroidIcon.height / 2), defaultButtonWidth, defaultButtonHeight); drawAResource (originRect, 3, "Diamond", diamondIcon, 3); //Tier 4 originRect.Set (originalOriginRect.x + (defaultButtonWidth * 2), originalOriginRect.y + (asteroidIcon.height / 2), defaultButtonWidth, defaultButtonHeight); drawAResource (originRect, 4, "Unobtainium", unobtainIcon, 9); }
void doTheSprites(GameObject[] obj) { Texture2D texture = null; GameObject bg = GameObject.FindGameObjectWithTag("Background"); SpriteRenderer bgRender = null; bgRender = bg.GetComponent<SpriteRenderer>(); switch (rando) { case 0: texture = texture1; bgRender.sprite = bg1; break; case 1: texture = texture2; bgRender.sprite = bg2; break; case 2: texture = texture3; bgRender.sprite = bg3; break; case 3: texture = texture4; bgRender.sprite = bg4; break; } foreach (GameObject g in obj) { Rect textureRect = new Rect(0f,0f,16f,16f); float originX = textureRect.x; float originY = textureRect.y; float newX = originX; float newY = originY; SpriteRenderer spriteR = (SpriteRenderer)g.GetComponent<Renderer>(); Transform trans = (Transform)g.GetComponent<Transform>(); Vector3 pos = trans.position; int blockinfo = 0; Collider2D[] surrounding = Physics2D.OverlapAreaAll(new Vector2(pos.x-1, pos.y-1), new Vector2(pos.x+1,pos.y+1)); foreach (Collider2D col in surrounding) { if (col.tag == "Ground") { //block directly above if (col.transform.position.x == pos.x && col.transform.position.y > pos.y) { blockinfo |= ABOVE; //Debug.Log("Block above"); } //block directly to right if (col.transform.position.x > pos.x && col.transform.position.y == pos.y) { blockinfo |= RIGHT; //Debug.Log("Block to right"); } //block directly to left if (col.transform.position.x < pos.x && col.transform.position.y == pos.y) { blockinfo |= LEFT; //Debug.Log("Block to left"); } //block directly below if (col.transform.position.x == pos.x && col.transform.position.y < pos.y) { blockinfo |= BELOW; //Debug.Log("Block below"); } } } if(((blockinfo & LEFT) != 0) && ((blockinfo & ABOVE) != 0) && ((blockinfo & RIGHT) != 0)) { //set the rectangle's x coordinate to the sprite for bottom blocks newX = originX + 16f + 1; if((blockinfo & BELOW) != 0) { newY = originY + 16f + 1; } } if(((blockinfo & LEFT) != 0) && ((blockinfo & ABOVE) == 0) && ((blockinfo & RIGHT) == 0)) { //set x coordinate to sprite for block with nothing above or to the right (a block that is top right) newX = originX + 32f + 2; if ((blockinfo & BELOW) != 0) { newY = originY + 16f + 1; } } if(((blockinfo & LEFT) == 0) && ((blockinfo & ABOVE) == 0) && ((blockinfo & RIGHT) != 0)) { //set x coordinate to sprite for block that is top left newX = originX + 48f + 3; if ((blockinfo & BELOW) != 0) { newY = originY + 16f + 1; } } if(((blockinfo & LEFT) == 0) && ((blockinfo & ABOVE) != 0) && ((blockinfo & RIGHT) != 0)) { //set x coordinate to sprite for block that is mid/bottom left newX = originX + 64f + 4; if ((blockinfo & BELOW) != 0) { newY = originY + 16f + 1; } } if(((blockinfo & LEFT) != 0) && ((blockinfo & ABOVE) != 0) && ((blockinfo & RIGHT) == 0)) { //set x coordinate to sprite for block that is mid/bottom right newX = originX + 80f + 5; if ((blockinfo & BELOW) != 0) { newY = originY + 16f + 1; } } if(((blockinfo & LEFT) == 0) && ((blockinfo & ABOVE) == 0) && ((blockinfo & RIGHT) == 0)) { //set x coordinate to sprite for block that is alone newX = originX + 96f + 6; if ((blockinfo & BELOW) != 0) { newY = originY + 16f + 1; } } if (((blockinfo & LEFT) == 0) && ((blockinfo & ABOVE) != 0) && ((blockinfo & RIGHT) == 0)) { //set x coordinate to sprite for block that is only covered on top newX = originX + 112 + 7; if ((blockinfo & BELOW) != 0) { newY = originY + 16f + 1; } } if(((blockinfo & LEFT) != 0) && ((blockinfo & ABOVE) == 0) && ((blockinfo & RIGHT) != 0)) { //set x coordinate to default sprite newX = originX; if ((blockinfo & BELOW) != 0) { newY = originY + 16f + 1; } } textureRect.Set(newX, newY, textureRect.width, textureRect.height); spriteR.sprite = Sprite.Create(texture, textureRect, new Vector2(0.5f, 0.5f), 15); spriteR.color = Color.white; } done = true; }
public static tk2dSpriteCollectionData CreateFromTexture( Texture texture, SpriteCollectionSize size, Vector2 textureDimensions, string[] names, Rect[] regions, Rect[] trimRects, Vector2[] anchors, bool[] rotated) { GameObject go = new GameObject("SpriteCollection"); tk2dSpriteCollectionData sc = go.AddComponent<tk2dSpriteCollectionData>(); sc.Transient = true; sc.version = tk2dSpriteCollectionData.CURRENT_VERSION; sc.invOrthoSize = 1.0f / size.orthoSize; sc.halfTargetHeight = size.targetHeight * 0.5f; sc.premultipliedAlpha = false; string shaderName = "tk2d/BlendVertexColor"; #if UNITY_EDITOR { Shader ts = Shader.Find(shaderName); string assetPath = UnityEditor.AssetDatabase.GetAssetPath(ts); if (assetPath.ToLower().IndexOf("/resources/") == -1) { UnityEditor.EditorUtility.DisplayDialog("tk2dRuntimeSpriteCollection Error", "The tk2d/BlendVertexColor shader needs to be in a resources folder for this to work.\n\n" + "Create a subdirectory named 'resources' where the shaders are, and move the BlendVertexColor shader into this directory.\n\n"+ "eg. TK2DROOT/tk2d/Shaders/Resources/BlendVertexColor\n\n" + "Be sure to do this from within Unity and not from Explorer/Finder.", "Ok"); return null; } } #endif sc.material = new Material(Shader.Find(shaderName)); sc.material.mainTexture = texture; sc.materials = new Material[1] { sc.material }; sc.textures = new Texture[1] { texture }; sc.buildKey = UnityEngine.Random.Range(0, Int32.MaxValue); float scale = 2.0f * size.orthoSize / size.targetHeight; Rect trimRect = new Rect(0, 0, 0, 0); // Generate geometry sc.spriteDefinitions = new tk2dSpriteDefinition[regions.Length]; for (int i = 0; i < regions.Length; ++i) { bool defRotated = (rotated != null) ? rotated[i] : false; if (trimRects != null) { trimRect = trimRects[i]; } else { if (defRotated) trimRect.Set( 0, 0, regions[i].height, regions[i].width ); else trimRect.Set( 0, 0, regions[i].width, regions[i].height ); } sc.spriteDefinitions[i] = CreateDefinitionForRegionInTexture(names[i], textureDimensions, scale, regions[i], trimRect, anchors[i], defRotated); } foreach (var def in sc.spriteDefinitions) { def.material = sc.material; } return sc; }
// 8 draggable points around the border (resizing) public static Rect RectControl( int controlId, Rect r, Transform t ) { Event ev = Event.current; // Break out if vertex modifier is active if (IsSnapToVertexActive()) { return r; } bool guiChanged = false; GUIStyle style = tk2dEditorSkin.MoveHandle; Vector2 rSign = new Vector2(Mathf.Sign (r.width), Mathf.Sign (r.height)); r = PositiveRect(r); constrainRectTemp = r; constrainRectMatrixTemp = t.localToWorldMatrix; Vector3[] localPts = new Vector3[] { new Vector3(r.xMin + r.width * 0.0f, r.yMin + r.height * 0.0f, 0), new Vector3(r.xMin + r.width * 0.5f, r.yMin + r.height * 0.0f, 0), new Vector3(r.xMin + r.width * 1.0f, r.yMin + r.height * 0.0f, 0), new Vector3(r.xMin + r.width * 0.0f, r.yMin + r.height * 0.5f, 0), new Vector3(r.xMin + r.width * 1.0f, r.yMin + r.height * 0.5f, 0), new Vector3(r.xMin + r.width * 0.0f, r.yMin + r.height * 1.0f, 0), new Vector3(r.xMin + r.width * 0.5f, r.yMin + r.height * 1.0f, 0), new Vector3(r.xMin + r.width * 1.0f, r.yMin + r.height * 1.0f, 0), }; Vector3[] worldPts = new Vector3[8]; Vector2[] guiPts = new Vector2[8]; bool[] handleVisible = new bool[8]; for (int i = 0; i < 8; ++i) { worldPts[i] = t.TransformPoint(localPts[i]); guiPts[i] = HandleUtility.WorldToGUIPoint(worldPts[i]); handleVisible[i] = true; } // Hide handles if screen distance gets too small { float edgeLengthBottom = (guiPts[0] - guiPts[2]).magnitude; float edgeLengthTop = (guiPts[5] - guiPts[7]).magnitude; float edgeLengthLeft = (guiPts[0] - guiPts[5]).magnitude; float edgeLengthRight = (guiPts[2] - guiPts[7]).magnitude; if (edgeLengthBottom < handleClosenessClip || edgeLengthTop < handleClosenessClip || edgeLengthLeft < handleClosenessClip || edgeLengthRight < handleClosenessClip) { for (int i = 0; i < 8; ++i) { handleVisible[i] = false; } } else { if (edgeLengthBottom < 2.0f * handleClosenessClip || edgeLengthTop < 2.0f * handleClosenessClip) { handleVisible[1] = handleVisible[6] = false; } if (edgeLengthLeft < 2.0f * handleClosenessClip || edgeLengthRight < 2.0f * handleClosenessClip) { handleVisible[3] = handleVisible[4] = false; } } } Vector2[] handleCursorN = new Vector2[] { new Vector2(-1.0f, -1.0f), new Vector2(0.0f, -1.0f), new Vector2(1.0f, -1.0f), new Vector2(-1.0f, 0.0f), new Vector2(1.0f, 0.0f), new Vector2(-1.0f, 1.0f), new Vector2(0.0f, 1.0f), new Vector2(1.0f, 1.0f) }; for (int i = 0; i < 8; ++i) { if ((Event.current.type == EventType.Repaint || Event.current.type == EventType.MouseDown) && !handleVisible[i]) continue; Vector3 worldPt = worldPts[i]; MouseCursor cursor = GetHandleCursor(handleCursorN[i], t); EditorGUI.BeginChangeCheck(); Vector3 newWorldPt = MoveHandle( controlId + t.GetInstanceID() + "Handle".GetHashCode() + i, worldPt, t.forward, style, cursor ); if (EditorGUI.EndChangeCheck()) { Vector3 localPt = ev.shift ? constrainRectMatrix.inverse.MultiplyPoint(newWorldPt) : t.InverseTransformPoint(newWorldPt); Vector3 v0 = new Vector3(r.xMin, r.yMin, 0); Vector3 v1 = v0 + new Vector3(r.width, r.height, 0); // constrain axis if (i == 3 || i == 4) localPt.y = localPts[i].y; if (i == 1 || i == 6) localPt.x = localPts[i].x; // calculate new extrema if (!ev.shift) { if (i == 0 || i == 3 || i == 5) v0.x = Mathf.Min(v1.x, localPt.x); if (i == 0 || i == 1 || i == 2) v0.y = Mathf.Min(v1.y, localPt.y); if (i == 2 || i == 4 || i == 7) v1.x = Mathf.Max(v0.x, localPt.x); if (i == 5 || i == 6 || i == 7) v1.y = Mathf.Max(v0.y, localPt.y); } else { // constrain proportions v0 = new Vector3(constrainRect.xMin, constrainRect.yMin, 0); v1 = v0 + new Vector3(constrainRect.width, constrainRect.height, 0); if (i == 0 || i == 3 || i == 5) { v0.x = Mathf.Min(v1.x, localPt.x); float sy0 = (i == 0) ? 1.0f : ((i == 3) ? 0.5f : 0.0f); float dy = constrainRect.height * ((v1.x - v0.x) / constrainRect.width - 1.0f); v0.y -= dy * sy0; v1.y += dy * (1.0f - sy0); } if (i == 2 || i == 4 || i == 7) { v1.x = Mathf.Max(v0.x, localPt.x); float sy0 = (i == 2) ? 1.0f : ((i == 4) ? 0.5f : 0.0f); float dy = constrainRect.height * ((v1.x - v0.x) / constrainRect.width - 1.0f); v0.y -= dy * sy0; v1.y += dy * (1.0f - sy0); } if (i == 1 || i == 6) { if (i == 1) v0.y = Mathf.Min(v1.y, localPt.y); else v1.y = Mathf.Max(v0.y, localPt.y); float dx = constrainRect.width * ((v1.y - v0.y) / constrainRect.height - 1.0f); v0.x -= dx * 0.5f; v1.x += dx * 0.5f; } v0 = constrainRectMatrix.MultiplyPoint(v0); v1 = constrainRectMatrix.MultiplyPoint(v1); v0 = t.InverseTransformPoint(v0); v1 = t.InverseTransformPoint(v1); } guiChanged = true; r.Set(v0.x, v0.y, v1.x - v0.x, v1.y - v0.y); HandleUtility.Repaint(); } } if (guiChanged) { GUI.changed = true; } if (rSign.x < 0.0f) r = new Rect(r.xMax, r.yMin, -r.width, r.height); if (rSign.y < 0.0f) r = new Rect(r.xMin, r.yMax, r.width, -r.height); return r; }
public static tk2dSpriteCollectionData CreateFromTexturePacker(tk2dSpriteCollectionSize spriteCollectionSize, string texturePackerFileContents, Texture texture) { List<string> list = new List<string>(); List<Rect> list2 = new List<Rect>(); List<Rect> list3 = new List<Rect>(); List<Vector2> list4 = new List<Vector2>(); List<bool> list5 = new List<bool>(); int num = 0; TextReader reader = new StringReader(texturePackerFileContents); bool item = false; bool flag2 = false; string str = string.Empty; Rect rect = new Rect(); Rect rect2 = new Rect(); Vector2 zero = Vector2.zero; Vector2 vector2 = Vector2.zero; for (string str2 = reader.ReadLine(); str2 != null; str2 = reader.ReadLine()) { char ch; char ch2; if (str2.Length > 0) { ch = str2[0]; switch (num) { case 0: ch2 = ch; switch (ch2) { case 'h': goto Label_00DE; case 'i': { continue; } } if (ch2 == 'w') { zero.x = int.Parse(str2.Substring(2)); } else if (ch2 == '~') { goto Label_00F8; } break; case 1: goto Label_0108; } } continue; Label_00DE: zero.y = int.Parse(str2.Substring(2)); continue; Label_00F8: num++; continue; Label_0108: ch2 = ch; switch (ch2) { case 'n': { str = str2.Substring(2); continue; } case 'o': { string[] strArray2 = str2.Split(new char[0]); rect2.Set((float) int.Parse(strArray2[1]), (float) int.Parse(strArray2[2]), (float) int.Parse(strArray2[3]), (float) int.Parse(strArray2[4])); flag2 = true; continue; } case 'r': { item = int.Parse(str2.Substring(2)) == 1; continue; } case 's': { string[] strArray = str2.Split(new char[0]); rect.Set((float) int.Parse(strArray[1]), (float) int.Parse(strArray[2]), (float) int.Parse(strArray[3]), (float) int.Parse(strArray[4])); continue; } } if (ch2 == '~') { list.Add(str); list5.Add(item); list2.Add(rect); if (!flag2) { if (item) { rect2.Set(0f, 0f, rect.height, rect.width); } else { rect2.Set(0f, 0f, rect.width, rect.height); } } list3.Add(rect2); vector2.Set((float) ((int) (rect2.width / 2f)), (float) ((int) (rect2.height / 2f))); list4.Add(vector2); str = string.Empty; flag2 = false; item = false; } } return CreateFromTexture(texture, spriteCollectionSize, zero, list.ToArray(), list2.ToArray(), list3.ToArray(), list4.ToArray(), list5.ToArray()); }
void showRooms(int x, int y,int w, int h ) { // each room field // int pos_x=0,pos_y=0; int eachWidth = 300; int eachHeight = 140; int offSet_x=5,offSet_y = 5; Rect roomRect; //for(int i = 0; i<6; ++i) // rooms[i] = new Room(i, "asd", null, user ); //GUILayout.BeginArea(new Rect(x,y,w,h)); GUIStyle roomBoxStyle = new GUIStyle("box"); roomBoxStyle.imagePosition = new ImagePosition(); GUIStyle roomLabelStyle = new GUIStyle("BoldOutlineText"); roomLabelStyle.fontSize = 20; roomLabelStyle.alignment = TextAnchor.MiddleCenter; int i; for( i=0; i<rooms.Length; i++) { if( rooms[i] == null ) continue; //if( i%2==0 && i!=0) //{ // pos_x=0; pos_y += eachHeight+offSet_y; //} pos_x = x + offSet_x + (offSet_x+eachWidth)*(i%2); pos_y = y + offSet_y + (offSet_y+eachHeight)*(i/2); roomRect = new Rect(pos_x,pos_y,eachWidth,eachHeight); if( GUI.Button( roomRect, "", roomBoxStyle ) ) { byte[] packet = new byte[2+4]; PacketWriter.write(packet, 0, PacketType_CS.RequestJoinRoom);//2 PacketWriter.write(packet, 2, rooms[i].getId()); networkManager.write( packet ); } GUI.Box( roomRect, "" ); roomRect.Set(pos_x+10, pos_y+10, 150, 30); GUI.Label( roomRect, rooms[i].getRoomName() ); roomRect.Set(pos_x+20, pos_y+50, 130, 30); GUI.Label( roomRect, rooms[i].getMap().getName(), roomLabelStyle ); roomRect.Set(pos_x+20, pos_y+90, 130, 30); GUI.Label( roomRect, rooms[i].getUserCount() + "/20", roomLabelStyle ); roomRect.Set(pos_x+170, pos_y+10, 120, 120); GUI.DrawTexture( roomRect, rooms[i].getMap().getThumbnailImage() ); //test (roomRect); //pos_x += eachWidth+offSet_x; } //GUILayout.EndArea(); GUI.Label( new Rect(x+255, 585, 100, 30), (roomPage+1).ToString() ); if( roomPage > 0 ) { if( GUI.Button(new Rect(x+160, 585, 100, 30), "<<") ) { roomPage--; } } int maxPage = (totalNumberOfRoom-1) / 6; if( roomPage < maxPage ) { if( GUI.Button(new Rect(x+350, 585, 100, 30), ">>") ) { roomPage++; } } }
public override void Draw() { if (!Visible) { return; } Rect r = new Rect(CalculatedScreenPosition.x, CalculatedScreenPosition.y, _texture.width * _textureScale.x, _texture.height * _textureScale.y); bool flipped = _screenPosition.x > 600; if(flipped) { r.Set(r.x - 315, r.y, r.width, r.height); GUI.DrawTexture(r, _tooltipFlipped); } else { GUI.DrawTexture(r, _tooltipNormal); } GUI.color = new Color (1, 1, 1, alpha); GUI.skin = _skin; if(flipped) { _skin.label.alignment = TextAnchor.UpperRight; } else { _skin.label.alignment = TextAnchor.UpperLeft; } float x = CalculatedScreenPosition.x + 10; float y = CalculatedScreenPosition.y + 22; GUI.color = new Color (1, 1, 1, alpha); GUI.Label (new Rect (x + 25 + (flipped ? -315 : 0), y - 16, 230, 500), _bodyText); if(Event.current.type == EventType.Repaint) Visible = false; }
/// <summary> /// Draws the home base upgrade menu. /// </summary> /// <param name="originPosition">Origin position.</param> void drawHomeBaseUpgradeMenu(Rect originPosition) { Rect previousOriginPosition = new Rect (originPosition.x, originPosition.y, originPosition.width, originPosition.height); originPosition.Set (originPosition.x + defaultButtonWidth, originPosition.y, defaultButtonWidth, defaultButtonHeight); if (isDrawingTier1) { drawHomeBaseUpgrades (originPosition, 1); } if (GUI.Button (originPosition, "Tier One")) { isDrawingTier1 = true; isDrawingTier2 = false; isDrawingTier3 = false; isDrawingTier4 = false; tierOnePosition.Set (originPosition.x, originPosition.y, originPosition.width, originPosition.height); } originPosition.Set (originPosition.x, originPosition.y + defaultButtonHeight, defaultButtonWidth, defaultButtonHeight); if (isDrawingTier2) { drawHomeBaseUpgrades (originPosition, 2); } if (GUI.Button (originPosition, "Tier Two")) { isDrawingTier1 = false; isDrawingTier2 = true; isDrawingTier3 = false; isDrawingTier4 = false; tierTwoPosition.Set (originPosition.x, originPosition.y, originPosition.width, originPosition.height); } originPosition.Set (originPosition.x, originPosition.y + defaultButtonHeight, defaultButtonWidth, defaultButtonHeight); if (isDrawingTier3) { drawHomeBaseUpgrades (originPosition, 3); } if (GUI.Button (originPosition, "Tier Three")) { isDrawingTier1 = false; isDrawingTier2 = false; isDrawingTier3 = true; isDrawingTier4 = false; tierThreePosition.Set (originPosition.x, originPosition.y, originPosition.width, originPosition.height); } originPosition.Set (originPosition.x, originPosition.y + defaultButtonHeight, defaultButtonWidth, defaultButtonHeight); if (isDrawingTier4) { drawHomeBaseUpgrades (originPosition, 4); } if (GUI.Button (originPosition, "Tier Four")) { isDrawingTier1 = false; isDrawingTier2 = false; isDrawingTier3 = false; isDrawingTier4 = true; tierFourPosition.Set (originPosition.x, originPosition.y, originPosition.width, originPosition.height); } }
private void UpdateTransform() { if (this.AnchorCamera != null) { float sizeAtDistance = 1f; Vector3 localPosition = this.myTransform.localPosition; tk2dCamera camera = ((this.AnchorTk2dCamera == null) || (this.AnchorTk2dCamera.CameraSettings.projection == tk2dCameraSettings.ProjectionType.Perspective)) ? null : this.AnchorTk2dCamera; Rect rect = new Rect(); if (camera != null) { rect = !this.anchorToNativeBounds ? camera.ScreenExtents : camera.NativeScreenExtents; sizeAtDistance = camera.GetSizeAtDistance(1f); } else { rect.Set(0f, 0f, this.AnchorCamera.pixelWidth, this.AnchorCamera.pixelHeight); } float yMin = rect.yMin; float yMax = rect.yMax; float y = (yMin + yMax) * 0.5f; float xMin = rect.xMin; float xMax = rect.xMax; float x = (xMin + xMax) * 0.5f; Vector3 zero = Vector3.zero; switch (this.AnchorPoint) { case tk2dBaseSprite.Anchor.LowerLeft: zero = new Vector3(xMin, yMin, localPosition.z); break; case tk2dBaseSprite.Anchor.LowerCenter: zero = new Vector3(x, yMin, localPosition.z); break; case tk2dBaseSprite.Anchor.LowerRight: zero = new Vector3(xMax, yMin, localPosition.z); break; case tk2dBaseSprite.Anchor.MiddleLeft: zero = new Vector3(xMin, y, localPosition.z); break; case tk2dBaseSprite.Anchor.MiddleCenter: zero = new Vector3(x, y, localPosition.z); break; case tk2dBaseSprite.Anchor.MiddleRight: zero = new Vector3(xMax, y, localPosition.z); break; case tk2dBaseSprite.Anchor.UpperLeft: zero = new Vector3(xMin, yMax, localPosition.z); break; case tk2dBaseSprite.Anchor.UpperCenter: zero = new Vector3(x, yMax, localPosition.z); break; case tk2dBaseSprite.Anchor.UpperRight: zero = new Vector3(xMax, yMax, localPosition.z); break; } Vector3 position = zero + new Vector3(sizeAtDistance * this.offset.x, sizeAtDistance * this.offset.y, 0f); if (camera == null) { Vector3 vector4 = this.AnchorCamera.ScreenToWorldPoint(position); if (this.myTransform.position != vector4) { this.myTransform.position = vector4; } } else if (this.myTransform.localPosition != position) { this.myTransform.localPosition = position; } } }
/// <summary> /// Draws the load menu. /// </summary> /// <param name="originPosition">Origin position.</param> void drawLoadMenu(Rect originPosition) { //originPosition. //TODO: load in the current saves originPosition.Set (originPosition.x + defaultButtonWidth, originPosition.y, defaultButtonWidth, defaultButtonHeight); // This will warp the player to the home base scene //how many saves determine how many buttons there are if (GUI.Button (originPosition, "Save 1")) { //Application.LoadLevel ("HomeBase"); } }
void windowFunction(int windowID) { Layer[] layers = LayerManager.Layers.ToArray(); scrollViewVector = GUI.BeginScrollView(layerSelectorRect, scrollViewVector, new Rect(layerSelectorRect.x, layerSelectorRect.y, layerSelectorRect.width, layers.Length*(30 + PADDING) + 20)); Rect position = new Rect(); for (int i = 0; i < layers.Length; i++) { position.Set (PADDING, i*30 + i*PADDING + 20, layerSelectorRect.width - 30 - PADDING*5, 30); if (GUI.Button(position, LayerManager.Layers.ElementAt(i).Name)) { toggleLayer(i); } position.Set (position.x + position.width + PADDING, position.y, 30, 30); fillTexture(colorTex, new Color(layers[i].Color.r, layers[i].Color.g, layers[i].Color.b, 1f), (BoxManager.DisplayLayer & (1 << i)) == 0); GUI.Box(position, colorTex); } GUI.EndScrollView(); }
/// <summary> /// Draws the upgrade menu. /// </summary> /// <param name="originPosition">Origin position.</param> void drawUpgradeMenu(Rect originPosition) { GameObject player = GameObject.Find ("Player2"); Rect previousOriginPosition = new Rect (originPosition.x, originPosition.y, originPosition.width, originPosition.height); originPosition.Set (originPosition.x + defaultButtonWidth, originPosition.y, defaultButtonWidth, defaultButtonHeight); //GUI.Label (new Rect (tierOneRightColumnXPos, (bufferSize * 2), defaultButtonWidth, defaultButtonHeight), "Offense", boxGUIStyle); if (GUI.Button (originPosition, "Blaster Power")) { if (player.GetComponent<PlayerCenter> ().incBlasterPower ()) { Debug.Log ("Upgrade purchased!"); // Purchase was successful } else { // Purchase was not successful (max upgrade level reached, not enough resources) } } originPosition.Set (originPosition.x, originPosition.y + defaultButtonHeight, defaultButtonWidth, defaultButtonHeight); if (GUI.Button (originPosition, "More Blasters")) { if (player.GetComponent<PlayerCenter> ().incNumBlasters ()) { // Purchase was successful } else { // Purchase was not successful (max upgrade level reached, not enough resources) } } //originPosition.Set (originPosition.x, originPosition.y + defaultButtonHeight, defaultButtonWidth, defaultButtonHeight); //if (GUI.Button (originPosition, "Homing Missiles")) { // if (player.GetComponent<PlayerCenter> ().incMissilePower ()) { // Purchase was successful // } else { // Purchase was not successful (max upgrade level reached, not enough resources) // } //} originPosition = new Rect (previousOriginPosition.x + (defaultButtonWidth * 2), previousOriginPosition.y, previousOriginPosition.width, previousOriginPosition.height); //GUI.Label (new Rect (tierTwoRightColumnXPos, (bufferSize * 2), defaultButtonWidth, defaultButtonHeight), "Defense", boxGUIStyle); if (GUI.Button (originPosition, "Hull Strength")) { if (player.GetComponent<PlayerCenter> ().incHullStrength ()) { Debug.Log ("Upgrade purchased!"); // Purchase was successful } else { // Purchase was not successful (max upgrade level reached, not enough resources) } } //originPosition.Set (originPosition.x, originPosition.y + defaultButtonHeight, defaultButtonWidth, defaultButtonHeight); //if (GUI.Button (originPosition, "Shields")) { // if (player.GetComponent<PlayerCenter> ().incShieldPower ()) { // Debug.Log ("Upgrade purchased!"); // Purchase was successful // } else { // Purchase was not successful (max upgrade level reached, not enough resources) // } //} originPosition.Set (originPosition.x, originPosition.y + defaultButtonHeight, defaultButtonWidth, defaultButtonHeight); if (GUI.Button (originPosition, "Regen")) { if (player.GetComponent<PlayerCenter> ().incHullRegen ()) { Debug.Log ("Upgrade purchased!"); // Purchase was successful } else { // Purchase was not successful (max upgrade level reached, not enough resources) } } originPosition = new Rect (previousOriginPosition.x + (defaultButtonWidth * 2), previousOriginPosition.y, previousOriginPosition.width, previousOriginPosition.height); originPosition.Set (originPosition.x + defaultButtonWidth, originPosition.y, defaultButtonWidth, defaultButtonHeight); //GUI.Label (new Rect (tierThreeRightColumnXPos, (bufferSize * 2), defaultButtonWidth, defaultButtonHeight), "Utility", boxGUIStyle); if (GUI.Button (originPosition, "Flight Speed")) { if (player.GetComponent<PlayerCenter> ().incMovementLevel ()) { Debug.Log ("Upgrade purchased!"); // Purchase was successful } else { // Purchase was not successful (max upgrade level reached, not enough resources) } } //Commented out, not wanted //originPosition.Set (originPosition.x, originPosition.y + defaultButtonHeight, defaultButtonWidth, defaultButtonHeight); //if (GUI.Button (originPosition, "Radar")) { // if(player.GetComponent<PlayerCenter> ().incRadarLevel ()){ // Debug.Log("Upgrade purchased!"); // Purchase was successful // } else { // Purchase was not successful (max upgrade level reached, not enough resources) // } //} //originPosition.Set (originPosition.x, originPosition.y + defaultButtonHeight, defaultButtonWidth, defaultButtonHeight); //if (GUI.Button (originPosition, "Resource Magnet")) { // if(player.GetComponent<PlayerCenter> ().incResourceMagnet ()){ // Debug.Log("Upgrade purchased!"); // Purchase was successful // } else { // Purchase was not successful (max upgrade level reached, not enough resources) // } //} }
// Use this for initialization void Start() { m_menuGroup = new Rect(); m_menuGroup.Set(Screen.width-260,0,260,Screen.height); m_grassCurTex = (Texture2D) GameObject.Find("grassGround").GetComponent<Renderer>().material.GetTexture("_MainTex"); _matTexMenu = new GUIItemV2 (0, 0, "Material", "sousMenuOn", "sousMenuOff", this); _matTexList = new GUIUpperList (1, 0, TextManager.GetText("material"), "sousMenuOn", "sousMenuOff", this); _matTexMenu.addSubItem (_matTexList); enabled = false; }
/// <summary> /// Handles the split window stuff, somewhat bodgily /// </summary> private void ResizeTopPane() { //Set up the resize collision rect CursorChangeRect = new Rect(0, CurrentTopPaneHeight, position.width, DividerHeight); var oldColor = GUI.color; GUI.color = SizerLineColour; GUI.DrawTexture(CursorChangeRect, EditorGUIUtility.whiteTexture); GUI.color = oldColor; EditorGUIUtility.AddCursorRect(CursorChangeRect,MouseCursor.ResizeVertical); if( Event.current.type == EventType.mouseDown && CursorChangeRect.Contains(Event.current.mousePosition)) { Resize = true; } //If we've resized, store the new size and force a repaint if(Resize) { CurrentTopPaneHeight = Event.current.mousePosition.y; CursorChangeRect.Set(CursorChangeRect.x,CurrentTopPaneHeight,CursorChangeRect.width,CursorChangeRect.height); Repaint(); } if(Event.current.type == EventType.MouseUp) Resize = false; CurrentTopPaneHeight = Mathf.Clamp(CurrentTopPaneHeight, 100, position.height-100); }
// Texture packer import public static tk2dSpriteCollectionData CreateFromTexturePacker( tk2dRuntime.SpriteCollectionSize spriteCollectionSize, string texturePackerFileContents, Texture texture ) { List<string> names = new List<string>(); List<Rect> rects = new List<Rect>(); List<Rect> trimRects = new List<Rect>(); List<Vector2> anchors = new List<Vector2>(); List<bool> rotated = new List<bool>(); int state = 0; System.IO.TextReader tr = new System.IO.StringReader(texturePackerFileContents); // tmp state bool entryRotated = false; bool entryTrimmed = false; string entryName = ""; Rect entryRect = new Rect(); Rect entryTrimData = new Rect(); Vector2 textureDimensions = Vector2.zero; Vector2 anchor = Vector2.zero; // gonna write a non-allocating parser for this one day. // all these substrings & splits can't be good // but should be a tiny bit better than an xml / json parser... string line = tr.ReadLine(); while (line != null) { if (line.Length > 0) { char cmd = line[0]; switch (state) { case 0: { switch (cmd) { case 'i': break; // ignore version field for now case 'w': textureDimensions.x = Int32.Parse(line.Substring(2)); break; case 'h': textureDimensions.y = Int32.Parse(line.Substring(2)); break; // total number of sprites would be ideal to statically allocate case '~': state++; break; } } break; case 1: { switch (cmd) { case 'n': entryName = line.Substring(2); break; case 'r': entryRotated = Int32.Parse(line.Substring(2)) == 1; break; case 's': { // sprite string[] tokens = line.Split(); entryRect.Set( Int32.Parse(tokens[1]), Int32.Parse(tokens[2]), Int32.Parse(tokens[3]), Int32.Parse(tokens[4]) ); } break; case 'o': { // origin string[] tokens = line.Split(); entryTrimData.Set( Int32.Parse(tokens[1]), Int32.Parse(tokens[2]), Int32.Parse(tokens[3]), Int32.Parse(tokens[4]) ); entryTrimmed = true; } break; case '~': { names.Add(entryName); rotated.Add(entryRotated); rects.Add(entryRect); if (!entryTrimmed) { // The entryRect dimensions will be the wrong way around if the sprite is rotated if (entryRotated) entryTrimData.Set(0, 0, entryRect.height, entryRect.width); else entryTrimData.Set(0, 0, entryRect.width, entryRect.height); } trimRects.Add(entryTrimData); anchor.Set( (int)(entryTrimData.width / 2), (int)(entryTrimData.height / 2) ); anchors.Add( anchor ); entryName = ""; entryTrimmed = false; entryRotated = false; } break; } } break; } } line = tr.ReadLine(); } return CreateFromTexture( texture, spriteCollectionSize, textureDimensions, names.ToArray(), rects.ToArray(), trimRects.ToArray(), anchors.ToArray(), rotated.ToArray() ); }
/// <summary> /// Draws the home base upgrades. /// </summary> /// <param name="originPosition">Origin position.</param> /// <param name="tierLevel">Tier level.</param> void drawHomeBaseUpgrades(Rect originPosition, int tierLevel) { originPosition.Set (originPosition.x + defaultButtonWidth, originPosition.y, defaultButtonWidth, defaultButtonHeight); foreach (BaseUpgradeObject item in listOfBaseUpgradeObjects) { if (item.tierLevel == tierLevel) { if (GUI.Button (originPosition, "Tier" + tierLevel + " " + item.upgradeName)) { if (tierLevel == 1 && item.upgradeName.Equals ("Auto Turret")) { //TODO: create methoid that will attemp to buy a item, give it item tier and item name Debug.Log ("you are trying to buy a tier 1 auto turret"); } } originPosition.Set (originPosition.x, originPosition.y + originPosition.height, defaultButtonWidth, defaultButtonHeight); } } }