Exemple #1
0
        ///<summary>全パーツ選択</summary>
        void SelectPartsAll()
        {
            if (Event.current.type != EventType.KeyDown)
            {
                return;
            }

            var keycode = Event.current.keyCode;

            if (keycode == KeyCode.A)
            {
                List <enPartsType> drawList = BasePosition.GenGetZSortList(sendMotion_.stPassive.isLeft, sendMotion_.stPassive.isBack);
                bool isAllSelect            = isMultiParts_.Where(p => p.Value == false).Any();

                foreach (var item in drawList)
                {
                    var editParts = PartsConverter.Convert(item);
                    isMultiParts_[editParts] = (isAllSelect)
                                                ? true
                                                : !isMultiParts_[editParts];
                    multiOffset_[editParts] = Vector2Int.zero;
                }

                isRepaint_ = true;
            }
        }
        ///<summary>パーツラベル描画</summary>
        void DrawPartsLabel()
        {
            List <enPartsType> drawList = BasePosition.GenGetZSortList(sendMotion_.stPassive.isLeft, sendMotion_.stPassive.isBack);

            foreach (var item in drawList)
            {
                DrawParts(item, false);
            }

            const int MAG = 5;

            foreach (var item in drawList)
            {
                PartsObject partsObject = GetPartsObject(item);

                Vector2 pos = partsObject.pos;
                pos.y = -pos.y;                 //上下反転
                //bool mirror = partsObject.partsTransform.mirror;
                Sprite sp = parent_.GetSprite(item, sendMotion_.stPassive.isBack, sendMotion_.stPassive.faceNo);

                if (sp == null)
                {
                    break;
                }

                Vector2 basepos = new Vector2(-sp.pivot.x, +sp.pivot.y - sp.rect.height);
                //Vector2 size = new Vector2(sp.rect.width, sp.rect.height);

                Vector2 labelpos = new Vector2(128, 256) / MAG;
                Vector2 drawPos  = (basepos + labelpos + pos);
                // GUIの見た目を変える。
                GUIStyle      guiStyle   = new GUIStyle();
                GUIStyleState styleState = new GUIStyleState();

                string vecstr = "";
                if (isSabunPos_)
                {
                    // テキストの色を設定
                    styleState.textColor = Color.yellow;
                    vecstr = "(" + ((int)(sendMotion_.stPos.GetPos(item).x)).ToString() + "," + ((int)(sendMotion_.stPos.GetPos(item).y)).ToString() + ")";
                }
                else
                {
                    // テキストの色を設定
                    styleState.textColor = Color.white;
                    vecstr = "(" + ((int)(drawPos.x)).ToString() + "," + ((int)(drawPos.y)).ToString() + ")";
                }

                // スタイルの設定。
                guiStyle.normal    = styleState;
                guiStyle.alignment = TextAnchor.MiddleCenter;

                Vector2 labelPos  = new Vector2(drawPos.x, drawPos.y);
                Rect    labelRect = new Rect(labelPos * MAG, new Vector2(sp.rect.width, sp.rect.height) * MAG);

                GUI.Label(labelRect, vecstr, guiStyle);
            }
        }
        ///<summary>全パーツ描画</summary>
        void DrawPartsAll()
        {
            try
            {
                List <enPartsType> drawList = BasePosition.GenGetZSortList(sendMotion_.stPassive.isLeft, sendMotion_.stPassive.isBack);

                if (focusObject_ == enFocusObject.focusTack)
                {
                    foreach (var item in drawList)
                    {
                        //非選択
                        if (!isMultiParts_[PartsConverter.Convert(item)])
                        {
                            DrawParts(item, false);
                        }
                    }
                    foreach (var item in drawList)
                    {
                        if (isMultiParts_[PartsConverter.Convert(item)])
                        {
                            DrawParts(item, false);
                        }
                    }
                }
                else
                {
                    foreach (var item in drawList)
                    {
                        DrawParts(item, false);
                    }
                }

                //パーツギズモ
                foreach (var item in drawList)
                {
                    DrawPartsGizmoPoint(item);
                }

                //パーツギズモ

                DrawPartsGizmoLine(drawList);
            }
            catch
            {
            }
        }
Exemple #4
0
        ///<summary>キーパーツ選択</summary>
        void SelectPartsKey()
        {
            if (Event.current.type != EventType.KeyDown)
            {
                return;
            }

            var keycode = Event.current.keyCode;
            var isCtrl  = Event.current.control;

            if ((keycode == KeyCode.Keypad1) ||
                (keycode == KeyCode.Keypad2) ||
                (keycode == KeyCode.Keypad3) ||
                (keycode == KeyCode.Keypad4) ||
                (keycode == KeyCode.Keypad5) ||
                (keycode == KeyCode.Keypad6) ||
                (keycode == KeyCode.Keypad7) ||
                (keycode == KeyCode.Keypad8) ||
                (keycode == KeyCode.Keypad9) ||
                (keycode == KeyCode.Keypad0) ||
                (keycode == KeyCode.KeypadPeriod)
                )
            {
                List <enPartsType> drawList  = BasePosition.GenGetZSortList(sendMotion_.stPassive.isLeft, sendMotion_.stPassive.isBack);
                enPartsType        partsType = enPartsType.Body;
                switch (keycode)
                {
                case KeyCode.Keypad8:
                    partsType = enPartsType.Ant;
                    break;

                case KeyCode.Keypad5:
                    partsType = enPartsType.Head;
                    break;

                case KeyCode.Keypad2:
                    partsType = enPartsType.Body;
                    break;

                case KeyCode.Keypad7:
                    partsType = enPartsType.RightArm;
                    break;

                case KeyCode.Keypad4:
                    partsType = enPartsType.RightHand;
                    break;

                case KeyCode.Keypad9:
                    partsType = enPartsType.LeftArm;
                    break;

                case KeyCode.Keypad6:
                    partsType = enPartsType.LeftHand;
                    break;

                case KeyCode.Keypad1:
                    partsType = enPartsType.RightLeg;
                    break;

                case KeyCode.Keypad0:
                    partsType = enPartsType.RightFoot;
                    break;

                case KeyCode.Keypad3:
                    partsType = enPartsType.LeftLeg;
                    break;

                case KeyCode.KeypadPeriod:
                    partsType = enPartsType.LeftFoot;
                    break;

                default:
                    return;
                }

                if (isCtrl)
                {
                    foreach (var item in drawList)
                    {
                        if (partsType != item)
                        {
                            continue;
                        }

                        var editParts = PartsConverter.Convert(item);

                        isMultiParts_[editParts] = !isMultiParts_[editParts];
                        multiOffset_[editParts]  = Vector2Int.zero;
                    }
                }
                else
                {
                    foreach (var item in drawList)
                    {
                        var editParts = PartsConverter.Convert(item);

                        isMultiParts_[editParts] = (partsType != item)
                                                        ? false
                                                        : !isMultiParts_[editParts];
                        multiOffset_[editParts] = Vector2Int.zero;
                    }
                }

                isRepaint_ = true;
            }
        }