コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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;
            }
        }
コード例 #3
0
 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;
         }
     }
 }
コード例 #4
0
        // 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;
        }
コード例 #5
0
        public void SetOnlyButton(Texture2D icon, string text, int savedKey, object savedObj)
        {
            _unitType = UNIT_TYPE.OnlyButton;
            _icon     = icon;
            _text     = text;
            _savedKey = savedKey;
            _savedObj = savedObj;

            MakeGUIContent();
        }
コード例 #6
0
        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();
        }
コード例 #7
0
ファイル: Unit.cs プロジェクト: KIS02/KIS
 public float StatePercent(UNIT_TYPE type)
 {
     if (type == UNIT_TYPE.Health)
     {
         return(Health / MaxHealth);
     }
     if (type == UNIT_TYPE.Energy)
     {
         return(Energy / MaxEnergy);
     }
     return(0f);
 }
コード例 #8
0
ファイル: CBullet.cs プロジェクト: choi98772/unityexam1
    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);
    }
コード例 #9
0
        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();
        }
コード例 #10
0
    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;
        }
    }
コード例 #11
0
        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();
        }
コード例 #12
0
    /// <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);
    }
コード例 #13
0
 //유닛타입설정
 public void SetUnitType(UNIT_TYPE type)
 {
     mUnitType = type;
 }
コード例 #14
0
        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);
            }
        }
コード例 #15
0
 public void UpdateUserUnits()
 {
     Unit_Type = (isMetric) ? UNIT_TYPE.METRIC : UNIT_TYPE.IMPERIAL;
 }
コード例 #16
0
ファイル: GameInfo.cs プロジェクト: BenceUszkai/GoT_NEW_REPO
    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;
    }
コード例 #17
0
ファイル: GameInfo.cs プロジェクト: BenceUszkai/GoT_NEW_REPO
    public unitStruct CreateShip(HOUSE h)
    {
        ID = 0;
        player = h;
        type = UNIT_TYPE.KNIGHT;
        defeated = false;
        attackPoint = 1;
        defendPoint = 1;
        cost = 1;

        return this;
    }
コード例 #18
0
ファイル: GameInfo.cs プロジェクト: BenceUszkai/GoT_NEW_REPO
    public unitStruct CreateSoldier( HOUSE h )
    {
        ID = 0;
        player = h;
        type = UNIT_TYPE.SOLDIER;
        defeated = false;
        attackPoint = 1;
        defendPoint = 1;
        cost = 1;

        return this;
    }
コード例 #19
0
ファイル: UserSetting.cs プロジェクト: mylink229/UWGBSoftware
 public void SetUnitType(UNIT_TYPE Unit_Type)
 {
     oUserSetting.Unit_Type = Unit_Type;
 }