public void SetMesh(apMeshGroup meshGroup, apTransform_Mesh meshTransform, apRenderUnit parentRenderUnit) { _unitType = UNIT_TYPE.Mesh; _meshGroup = meshGroup; _meshGroupTransform = null; _meshTransform = meshTransform; _meshTransform._linkedRenderUnit = this; _depth = 0; if (parentRenderUnit != null) { _depth += parentRenderUnit._depth; } if (_meshGroupTransform != null) { _depth += _meshGroupTransform._depth; } _depth += meshTransform._depth; if (parentRenderUnit != null) { parentRenderUnit._childRenderUnits.Add(this); _parentRenderUnit = parentRenderUnit; } }
public void SetGroup(apMeshGroup meshGroup, apTransform_MeshGroup meshGroupTransform, apRenderUnit parentRenderUnit) { _unitType = UNIT_TYPE.GroupNode; _meshGroup = meshGroup; _meshGroupTransform = meshGroupTransform; _meshTransform = null; //역으로 Link를 하자 _meshGroupTransform._linkedRenderUnit = this; _depth = 0; if (_meshTransform != null) { _depth += _meshTransform._depth; } if (parentRenderUnit != null) { _depth += parentRenderUnit._depth; } if (meshGroupTransform != null) { //루트가 아니라면 Mesh Group Transform도 있다. _depth += _meshGroupTransform._depth; } if (parentRenderUnit != null) { parentRenderUnit._childRenderUnits.Add(this); _parentRenderUnit = parentRenderUnit; } }
void Update() { if (captureCursor) { if (map != null && map.cursorLocation != lastCursorPos) { if (map.transform.lossyScale.z != 1.0f) { lastCursorPos = map.cursorLocation.normalized; } else { lastCursorPos = map.cursorLocation; } fromUnit = UNIT_TYPE.SphereCoordinates; fromX = map.cursorLocation.x; fromY = map.cursorLocation.y; fromZ = map.cursorLocation.z; Convert(); } if (Input.GetKeyDown(KeyCode.C)) { captureCursor = false; } } }
// Editor Functions //------------------------------------------------ public void Bake(apPortrait portrait, //apMeshGroup srcMeshGroup, apOptTransform parentTransform, apOptRootUnit rootUnit, string name, int transformID, int meshGroupUniqueID, apMatrix defaultMatrix, bool isMesh, int level, int depth, bool isVisible_Default, Color meshColor2X_Default, float zScale ) { _portrait = portrait; _rootUnit = rootUnit; _transformID = transformID; _name = name; _meshGroupUniqueID = meshGroupUniqueID; _parentTransform = parentTransform; _defaultMatrix = new apMatrix(defaultMatrix); _transform = transform; _level = level; _depth = depth; _isVisible_Default = isVisible_Default; _meshColor2X_Default = meshColor2X_Default; if (parentTransform != null) { _depth -= parentTransform._depth; } //이부분 실험 중 //1. Default Matrix를 Transform에 적용하고, Modifier 계산에서는 제외하는 경우 //결과 : Bake시에는 "Preview"를 위해서 DefaultMatrix 위치로 이동을 시키지만, 실행시에는 원점으로 이동시킨다. //_transform.localPosition = _defaultMatrix.Pos3 - new Vector3(0.0f, 0.0f, (float)_depth); //_transform.localRotation = Quaternion.Euler(0.0f, 0.0f, _defaultMatrix._angleDeg); //_transform.localScale = _defaultMatrix._scale; //2. Default Matrix를 Modifier에 포함시키고 Transform은 원점인 경우 (Editor와 동일) _transform.localPosition = -new Vector3(0.0f, 0.0f, (float)_depth * zScale); _transform.localRotation = Quaternion.identity; _transform.localScale = Vector3.one; if (isMesh) { _unitType = UNIT_TYPE.Mesh; } else { _unitType = UNIT_TYPE.Group; } _childTransforms = null; _childMesh = null; }
public void SetOnlyButton(Texture2D icon, string text, int savedKey, object savedObj) { _unitType = UNIT_TYPE.OnlyButton; _icon = icon; _text = text; _savedKey = savedKey; _savedObj = savedObj; MakeGUIContent(); }
public void SetToggleButton_Visible(Texture2D icon, string text, int savedKey, object savedObj, VISIBLE_TYPE visibleType_Prefix, VISIBLE_TYPE visibleType_Postfix) { _unitType = UNIT_TYPE.ToggleButton_Visible; _icon = icon; _text = text; _savedKey = savedKey; _savedObj = savedObj; _visibleType_Prefix = visibleType_Prefix; _visibleType_Postfix = visibleType_Postfix; MakeGUIContent(); }
public float StatePercent(UNIT_TYPE type) { if (type == UNIT_TYPE.Health) { return(Health / MaxHealth); } if (type == UNIT_TYPE.Energy) { return(Energy / MaxEnergy); } return(0f); }
public void Init(Transform parentTransform, UNIT_TYPE type, int slotIndex, float x, float y, float tx, float ty) { mTransform = gameObject.transform; gameObject.transform.parent = parentTransform; SetStatus(UNIT_STATUS.US_MOVE_TARGET); mSlotIndex = slotIndex; SetUnitType(type); mTargetPos = new Vector3(tx, ty, 0); SetPos(x, y); SetMoveDirection(x, y, tx, ty); }
public void SetToggleButton(Texture2D icon, string text, int savedKey, object savedObj) { //수정 1.1 : 버그 if (text == null) { text = ""; } _unitType = UNIT_TYPE.ToggleButton; _icon = icon; _text = text; _savedKey = savedKey; _savedObj = savedObj; MakeGUIContent(); }
public void RemoveBullet(int index, UNIT_TYPE type) { if (index < 0 || index >= MAX_BULLET) { return; } if (type == UNIT_TYPE.BULLET_PLAYER) { mPlayerBulletList[index] = null; } else { mEnemyBulletList[index] = null; } }
public void SetLabel(Texture2D icon, string text, int savedKey, object savedObj) { //수정 1.1 : 버그 if (text == null) { text = ""; } _unitType = UNIT_TYPE.Label; _icon = icon; _text = text; _savedKey = savedKey; _savedObj = savedObj; _isRestoreTmpWorkVisibleBtn = false; MakeGUIContent(); }
/// <summary> /// 加载单位; /// </summary> /// <param name="name"></param> /// <param name="unitType"></param> /// <returns></returns> public GameObject LoadUnitObject(string name, UNIT_TYPE unitType) { GameObject unit = null; switch (unitType) { case UNIT_TYPE.WARRIOR: case UNIT_TYPE.HERO: unit = LoadPrefab(name, COMMDEF.RESPATH_WARRIOR); break; case UNIT_TYPE.NPC: case UNIT_TYPE.ATTACK_NPC: unit = LoadPrefab(name, COMMDEF.RESPATH_NPC); break; default: unit = LoadPrefab(name, COMMDEF.RESPATH_ACT); break; } return(unit); }
//유닛타입설정 public void SetUnitType(UNIT_TYPE type) { mUnitType = type; }
public override void OnInspectorGUI() { if (_calc == null) { return; } bool runConversion = false; bool runCalcDistance = false; EditorGUILayout.Separator(); EditorGUILayout.BeginVertical(blackStyle); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Convert From", GUILayout.Width(120)); UNIT_TYPE oldUnit = fromUnit; fromUnit = (UNIT_TYPE)EditorGUILayout.Popup((int)fromUnit, unitNames, GUILayout.MaxWidth(200)); if (fromUnit != oldUnit) { runConversion = true; } EditorGUILayout.EndHorizontal(); switch (fromUnit) { case UNIT_TYPE.Degrees: EditorGUILayout.BeginHorizontal(); GUILayout.Label(" Latitude", GUILayout.Width(120)); fromLatDegree = GUILayout.TextField(fromLatDegree, GUILayout.Width(40)); GUILayout.Label("°", GUILayout.Width(10)); fromLatMinute = GUILayout.TextField(fromLatMinute, GUILayout.Width(40)); GUILayout.Label("'", GUILayout.Width(10)); fromLatSeconds = GUILayout.TextField(fromLatSeconds, GUILayout.Width(80)); GUILayout.Label("''", GUILayout.Width(10)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label(" Longitude", GUILayout.Width(120)); fromLonDegree = GUILayout.TextField(fromLonDegree, GUILayout.Width(40)); GUILayout.Label("°", GUILayout.Width(10)); fromLonMinute = GUILayout.TextField(fromLonMinute, GUILayout.Width(40)); GUILayout.Label("'", GUILayout.Width(10)); fromLonSeconds = GUILayout.TextField(fromLonSeconds, GUILayout.Width(80)); GUILayout.Label("''", GUILayout.Width(10)); EditorGUILayout.EndHorizontal(); break; case UNIT_TYPE.DecimalDegrees: EditorGUILayout.BeginHorizontal(); GUILayout.Label(" Latitude", GUILayout.Width(120)); fromLatDec = GUILayout.TextField(fromLatDec, GUILayout.Width(80)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label(" Longitude", GUILayout.Width(120)); fromLonDec = GUILayout.TextField(fromLonDec, GUILayout.Width(80)); EditorGUILayout.EndHorizontal(); break; case UNIT_TYPE.SphereCoordinates: EditorGUILayout.BeginHorizontal(); GUILayout.Label(" X", GUILayout.Width(120)); fromX = GUILayout.TextField(fromX, GUILayout.Width(100)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label(" Y", GUILayout.Width(120)); fromY = GUILayout.TextField(fromY, GUILayout.Width(100)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label(" Z", GUILayout.Width(120)); fromZ = GUILayout.TextField(fromZ, GUILayout.Width(100)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label(" Follow Cursor", GUILayout.Width(120)); _calc.captureCursor = EditorGUILayout.Toggle(_calc.captureCursor, GUILayout.Width(20)); GUIStyle warningLabelStyle = new GUIStyle(GUI.skin.label); warningLabelStyle.normal.textColor = new Color(0.31f, 0.38f, 0.56f); if (!Application.isPlaying) { GUILayout.Label("(not available in Edit mode)", warningLabelStyle); } else if (_calc.captureCursor) { GUILayout.Label("(press C to capture)", warningLabelStyle); } EditorGUILayout.EndHorizontal(); break; } EditorGUILayout.EndVertical(); EditorGUILayout.Separator(); if (GUILayout.Button("Convert")) { runConversion = true; } EditorGUILayout.Separator(); EditorGUILayout.BeginVertical(blackStyle); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Convert To", GUILayout.Width(120)); oldUnit = toUnit; toUnit = (UNIT_TYPE)EditorGUILayout.Popup((int)toUnit, unitNames, GUILayout.MaxWidth(200)); if (oldUnit != toUnit) { runConversion = true; } EditorGUILayout.EndHorizontal(); switch (toUnit) { case UNIT_TYPE.Degrees: EditorGUILayout.BeginHorizontal(); GUILayout.Label(" Latitude", GUILayout.Width(120)); toLatDegree = GUILayout.TextField(toLatDegree, GUILayout.Width(40)); GUILayout.Label("°", GUILayout.Width(10)); toLatMinute = GUILayout.TextField(toLatMinute, GUILayout.Width(40)); GUILayout.Label("'", GUILayout.Width(10)); toLatSeconds = GUILayout.TextField(toLatSeconds, GUILayout.Width(80)); GUILayout.Label("''", GUILayout.Width(10)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label(" Longitude", GUILayout.Width(120)); toLonDegree = GUILayout.TextField(toLonDegree, GUILayout.Width(40)); GUILayout.Label("°", GUILayout.Width(10)); toLonMinute = GUILayout.TextField(toLonMinute, GUILayout.Width(40)); GUILayout.Label("'", GUILayout.Width(10)); toLonSeconds = GUILayout.TextField(toLonSeconds, GUILayout.Width(80)); GUILayout.Label("''", GUILayout.Width(10)); EditorGUILayout.EndHorizontal(); break; case UNIT_TYPE.DecimalDegrees: EditorGUILayout.BeginHorizontal(); GUILayout.Label(" Latitude", GUILayout.Width(120)); toLatDec = GUILayout.TextField(toLatDec, GUILayout.Width(80)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label(" Longitude", GUILayout.Width(120)); toLonDec = GUILayout.TextField(toLonDec, GUILayout.Width(80)); EditorGUILayout.EndHorizontal(); break; case UNIT_TYPE.SphereCoordinates: EditorGUILayout.BeginHorizontal(); GUILayout.Label(" X", GUILayout.Width(120)); toX = GUILayout.TextField(toX, GUILayout.Width(100)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label(" Y", GUILayout.Width(120)); toY = GUILayout.TextField(toY, GUILayout.Width(100)); EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Label(" Z", GUILayout.Width(120)); toZ = GUILayout.TextField(toZ, GUILayout.Width(100)); EditorGUILayout.EndHorizontal(); break; } EditorGUILayout.EndVertical(); EditorGUILayout.Separator(); if (errorMsg.Length > 0) { GUIStyle warningLabelStyle = new GUIStyle(GUI.skin.label); warningLabelStyle.normal.textColor = new Color(0.31f, 0.38f, 0.56f); GUILayout.Label("Conversion error: ", errorMsg); } EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("Copy to ClipBoard")) { StringBuilder sb = new StringBuilder(); switch (toUnit) { case UNIT_TYPE.DecimalDegrees: sb.Append("Latitude (decimal degrees): "); sb.AppendLine(toLatDec); sb.Append("Longitude (decimal degrees): "); sb.AppendLine(toLonDec); break; case UNIT_TYPE.Degrees: sb.Append("Latitude (degrees): "); sb.Append(toLatDegree); sb.Append("°"); sb.Append(toLatMinute); sb.Append("'"); sb.Append(toLatSeconds); sb.AppendLine("''"); sb.Append("Longitude (degrees): "); sb.Append(toLonDegree); sb.Append("°"); sb.Append(toLonMinute); sb.Append("'"); sb.Append(toLonSeconds); sb.AppendLine("''"); break; case UNIT_TYPE.SphereCoordinates: sb.Append("X: "); sb.AppendLine(toX); sb.Append("Y: "); sb.AppendLine(toY); sb.Append("Z: "); sb.AppendLine(toZ); break; } EditorGUIUtility.systemCopyBuffer = sb.ToString(); } if (GUILayout.Button("Locate (Play mode only)")) { if (Application.isPlaying) { _calc.FlyTo(); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); EditorGUILayout.BeginVertical(blackStyle); EditorGUILayout.BeginHorizontal(); GUILayout.Label("Distance From", GUILayout.Width(120)); int prev = _calc.GUICountryDistanceFrom; _calc.GUICountryDistanceFrom = EditorGUILayout.Popup(_calc.GUICountryDistanceFrom, countryNames, GUILayout.MaxWidth(200)); GUILayout.EndHorizontal(); if (_calc.GUICountryDistanceFrom != prev) { lastCityCountFrom = -1; _calc.countryDistanceFrom = GetIndex(countryNames[_calc.GUICountryDistanceFrom]); _calc.GUICityDistanceFrom = -1; GUIUtility.ExitGUI(); } if (_calc.countryDistanceFrom >= 0) { EditorGUILayout.BeginHorizontal(); GUILayout.Label("", GUILayout.Width(120)); prev = _calc.GUICityDistanceFrom; _calc.GUICityDistanceFrom = EditorGUILayout.Popup(_calc.GUICityDistanceFrom, cityNamesFrom, GUILayout.MaxWidth(200)); if (_calc.GUICityDistanceFrom != prev) { runCalcDistance = true; } GUILayout.EndHorizontal(); } EditorGUILayout.BeginHorizontal(); GUILayout.Label("Distance To", GUILayout.Width(120)); prev = _calc.GUICountryDistanceTo; _calc.GUICountryDistanceTo = EditorGUILayout.Popup(_calc.GUICountryDistanceTo, countryNames, GUILayout.MaxWidth(200)); GUILayout.EndHorizontal(); if (_calc.GUICountryDistanceTo != prev) { lastCityCountTo = -1; _calc.countryDistanceTo = GetIndex(countryNames[_calc.GUICountryDistanceTo]); _calc.GUICityDistanceTo = -1; GUIUtility.ExitGUI(); } if (_calc.countryDistanceTo >= 0) { EditorGUILayout.BeginHorizontal(); GUILayout.Label("", GUILayout.Width(120)); prev = _calc.GUICityDistanceTo; _calc.GUICityDistanceTo = EditorGUILayout.Popup(_calc.GUICityDistanceTo, cityNamesTo, GUILayout.MaxWidth(200)); if (_calc.GUICityDistanceTo != prev) { runCalcDistance = true; } GUILayout.EndHorizontal(); } EditorGUILayout.BeginHorizontal(); GUILayout.Label("", GUILayout.Width(120)); GUILayout.TextField(_calc.cityDistanceResult, GUILayout.Width(100)); GUILayout.Label("km", GUILayout.Width(20)); GUILayout.EndHorizontal(); EditorGUILayout.EndVertical(); EditorGUILayout.Separator(); if (runConversion) { DoConvert(); } if (runCalcDistance) { DoCalcDistance(); } if (_calc.isDirty) { GetResults(); _calc.isDirty = false; EditorUtility.SetDirty(target); } }
public void UpdateUserUnits() { Unit_Type = (isMetric) ? UNIT_TYPE.METRIC : UNIT_TYPE.IMPERIAL; }
public unitStruct CreateMachine(HOUSE h) { ID = 0; player = h; type = UNIT_TYPE.MACHINE; defeated = false; attackPoint = 4; // akkor negy ha erod/varat tamad amugy 0 defendPoint = 0; cost = 2; return this; }
public unitStruct CreateShip(HOUSE h) { ID = 0; player = h; type = UNIT_TYPE.KNIGHT; defeated = false; attackPoint = 1; defendPoint = 1; cost = 1; return this; }
public unitStruct CreateSoldier( HOUSE h ) { ID = 0; player = h; type = UNIT_TYPE.SOLDIER; defeated = false; attackPoint = 1; defendPoint = 1; cost = 1; return this; }
public void SetUnitType(UNIT_TYPE Unit_Type) { oUserSetting.Unit_Type = Unit_Type; }