コード例 #1
0
ファイル: MotionTransform.cs プロジェクト: ishidafuu/ecs_nkkd
        public void SetRotate(enPartsType partsType, enPartsRotate rotate)
        {
            int intRotate = (int)rotate;

            switch (partsType)
            {
            case enPartsType.Body:
                body.rotate = intRotate;
                break;

            case enPartsType.Head:
                head.rotate = intRotate;
                break;

            case enPartsType.LeftArm:
                leftArm.rotate = intRotate;
                break;

            case enPartsType.LeftLeg:
                leftLeg.rotate = intRotate;
                break;

            case enPartsType.RightArm:
                rightArm.rotate = intRotate;
                break;

            case enPartsType.RightLeg:
                rightLeg.rotate = intRotate;
                break;

            case enPartsType.Ant:
                ant.rotate = intRotate;
                break;
            }
        }
コード例 #2
0
        //サブウインドウのパーツオブジェクト取得
        PartsObject GetPartsObject(enPartsType partsType)
        {
            if (!partsObjects_.ContainsKey(partsType))
            {
                partsObjects_[partsType] = new PartsObject(partsType);
            }

            return(partsObjects_[partsType]);
        }
コード例 #3
0
ファイル: MotionColor.cs プロジェクト: ishidafuu/ecs_nkkd
        public bool IsActive(enPartsType partsType)
        {
            bool res = false;

            switch (partsType)
            {
            case enPartsType.Ant:
                res = isAnt;
                break;

            case enPartsType.Head:
                res = isHead;
                break;

            case enPartsType.Body:
                res = isBody;
                break;

            case enPartsType.LeftArm:
                res = isLeftArm;
                break;

            case enPartsType.RightArm:
                res = isRightArm;
                break;

            case enPartsType.LeftHand:
                res = isLeftHand;
                break;

            case enPartsType.RightHand:
                res = isRightHand;
                break;

            case enPartsType.LeftLeg:
                res = isLeftLeg;
                break;

            case enPartsType.RightLeg:
                res = isRightLeg;
                break;

            case enPartsType.LeftFoot:
                res = isLeftFoot;
                break;

            case enPartsType.RightFoot:
                res = isRightFoot;
                break;
            }
            return(res);
        }
コード例 #4
0
        public Sprite GetSprite(enPartsType partsType, bool isBack, int faceNo)
        {
            int typeNo = 0;

            switch (partsType)
            {
            case enPartsType.Body:
                typeNo = 0;
                break;

            case enPartsType.LeftArm:
            case enPartsType.RightArm:
                typeNo = 1;
                break;

            case enPartsType.LeftHand:
            case enPartsType.RightHand:
                typeNo = 2;
                break;

            case enPartsType.LeftLeg:
            case enPartsType.RightLeg:
                typeNo = 3;
                break;

            case enPartsType.LeftFoot:
            case enPartsType.RightFoot:
                typeNo = 4;
                break;

            case enPartsType.Head:
                typeNo = 5;
                break;

            case enPartsType.Ant:
                typeNo = 6;
                break;

            default:
                Debug.LogError("other partsType_");
                break;
            }

            var spriteName = TimeFlowShikiSettings.SPRITE_NAME + "_" + typeNo.ToString();

            if (!spriteDic.ContainsKey(spriteName))
            {
                Debug.Log("GetSprite NotFound : " + spriteName);
                return(null);
            }
            return(spriteDic[spriteName]);
        }
コード例 #5
0
ファイル: MotionTransform.cs プロジェクト: ishidafuu/ecs_nkkd
        public PartsTransform GetTransform(enPartsType partsType)
        {
            PartsTransform res = new PartsTransform();

            switch (partsType)
            {
            case enPartsType.Body:
                res = body;
                break;

            case enPartsType.Head:
                res = head;
                break;

            case enPartsType.LeftArm:
                res = leftArm;
                break;

            case enPartsType.RightArm:
                res = rightArm;
                break;

            case enPartsType.LeftHand:
                res = leftHand;
                break;

            case enPartsType.RightHand:
                res = rightHand;
                break;

            case enPartsType.LeftLeg:
                res = leftLeg;
                break;

            case enPartsType.RightLeg:
                res = rightLeg;
                break;

            case enPartsType.LeftFoot:
                res = leftFoot;
                break;

            case enPartsType.RightFoot:
                res = rightFoot;
                break;

            case enPartsType.Ant:
                res = ant;
                break;
            }
            return(res);
        }
コード例 #6
0
        public static Vector2Int GetPosEdit(enPartsType partsType, bool isMirror)
        {
            Vector2Int res = Vector2Int.zero;

            switch (partsType)
            {
            case enPartsType.Body:
                res = BODY_BASE;
                break;

            case enPartsType.Head:
                res = HEAD_BASE;
                break;

            case enPartsType.Ant:
                res = ANT_BASE;
                break;

            case enPartsType.LeftArm:
                res = (isMirror) ? R_ARM_BASE : L_ARM_BASE;
                break;

            case enPartsType.RightArm:
                res = (isMirror) ? L_ARM_BASE : R_ARM_BASE;
                break;

            case enPartsType.LeftHand:
                res = (isMirror) ? R_HAND_BASE : L_HAND_BASE;
                break;

            case enPartsType.RightHand:
                res = (isMirror) ? L_HAND_BASE : R_HAND_BASE;
                break;

            case enPartsType.LeftLeg:
                res = (isMirror) ? R_LEG_BASE : L_LEG_BASE;
                break;

            case enPartsType.RightLeg:
                res = (isMirror) ? L_LEG_BASE : R_LEG_BASE;
                break;

            case enPartsType.LeftFoot:
                res = (isMirror) ? R_FOOT_BASE : L_FOOT_BASE;
                break;

            case enPartsType.RightFoot:
                res = (isMirror) ? L_FOOT_BASE : R_FOOT_BASE;
                break;
            }
            return(res);
        }
コード例 #7
0
ファイル: MotionPosState.cs プロジェクト: ishidafuu/ecs_nkkd
        public Vector2Int GetPos(enPartsType partsType)
        {
            Vector2Int res = Vector2Int.zero;

            switch (partsType)
            {
            case enPartsType.Body:
                res = bodyPos;
                break;

            case enPartsType.Head:
                res = headPos;
                break;

            case enPartsType.LeftArm:
                res = leftArmPos;
                break;

            case enPartsType.RightArm:
                res = rightArmPos;
                break;

            case enPartsType.LeftHand:
                res = leftHandPos;
                break;

            case enPartsType.RightHand:
                res = rightHandPos;
                break;

            case enPartsType.LeftLeg:
                res = leftLegPos;
                break;

            case enPartsType.RightLeg:
                res = rightLegPos;
                break;

            case enPartsType.LeftFoot:
                res = leftFootPos;
                break;

            case enPartsType.RightFoot:
                res = rightFootPos;
                break;

            case enPartsType.Ant:
                res = antPos;
                break;
            }
            return(res);
        }
コード例 #8
0
ファイル: MotionTransform.cs プロジェクト: ishidafuu/ecs_nkkd
        public enPartsRotate GetRotate(enPartsType partsType)
        {
            int res = 0;

            switch (partsType)
            {
            case enPartsType.Body:
                res = body.rotate;
                break;

            case enPartsType.Head:
                res = head.rotate;
                break;

            case enPartsType.LeftArm:
                res = leftArm.rotate;
                break;

            case enPartsType.RightArm:
                res = rightArm.rotate;
                break;

            case enPartsType.LeftHand:
                res = leftHand.rotate;
                break;

            case enPartsType.RightHand:
                res = rightHand.rotate;
                break;

            case enPartsType.LeftLeg:
                res = leftLeg.rotate;
                break;

            case enPartsType.RightLeg:
                res = rightLeg.rotate;
                break;

            case enPartsType.LeftFoot:
                res = leftLeg.rotate;
                break;

            case enPartsType.RightFoot:
                res = rightLeg.rotate;
                break;

            case enPartsType.Ant:
                res = ant.rotate;
                break;
            }
            return((enPartsRotate)res);
        }
コード例 #9
0
ファイル: MotionTransform.cs プロジェクト: ishidafuu/ecs_nkkd
        public void SetTransform(enPartsType partsType, PartsTransform value)
        {
            switch (partsType)
            {
            case enPartsType.Body:
                body = value;
                break;

            case enPartsType.Head:
                head = value;
                break;

            case enPartsType.LeftArm:
                leftArm = value;
                break;

            case enPartsType.RightArm:
                rightArm = value;
                break;

            case enPartsType.LeftHand:
                leftHand = value;
                break;

            case enPartsType.RightHand:
                rightHand = value;
                break;

            case enPartsType.LeftLeg:
                leftLeg = value;
                break;

            case enPartsType.RightFoot:
                rightFoot = value;
                break;

            case enPartsType.LeftFoot:
                leftFoot = value;
                break;

            case enPartsType.RightLeg:
                rightLeg = value;
                break;

            case enPartsType.Ant:
                ant = value;
                break;
            }
        }
コード例 #10
0
        public void SetFromPartsTransform(enPartsType partsType, PartsTransform partsTransform)
        {
            switch (partsType)
            {
            case enPartsType.Body:
                body.SetFromPartsTransform(partsTransform);
                break;

            case enPartsType.Head:
                head.SetFromPartsTransform(partsTransform);
                break;

            case enPartsType.LeftArm:
                leftArm.SetFromPartsTransform(partsTransform);
                break;

            case enPartsType.RightArm:
                rightArm.SetFromPartsTransform(partsTransform);
                break;

            case enPartsType.LeftHand:
                leftHand.SetFromPartsTransform(partsTransform);
                break;

            case enPartsType.RightHand:
                rightHand.SetFromPartsTransform(partsTransform);
                break;

            case enPartsType.LeftLeg:
                leftLeg.SetFromPartsTransform(partsTransform);
                break;

            case enPartsType.RightLeg:
                rightLeg.SetFromPartsTransform(partsTransform);
                break;

            case enPartsType.LeftFoot:
                leftFoot.SetFromPartsTransform(partsTransform);
                break;

            case enPartsType.RightFoot:
                rightFoot.SetFromPartsTransform(partsTransform);
                break;

            case enPartsType.Ant:
                ant.SetFromPartsTransform(partsTransform);
                break;
            }
        }
コード例 #11
0
        ///<summary>左クリックパーツ選択</summary>
        void SelectParts()
        {
            if (Event.current.button != 0)
            {
                return;
            }

            Vector2 mousePos = (Event.current.mousePosition / mag_) - camPos_;

            //Yは反転
            mousePos.y = -mousePos.y;

            if (Event.current.type == EventType.MouseDown)
            {
                enPartsType partsType = enPartsType._END;
                foreach (enPartsType item in Enum.GetValues(typeof(enPartsType)))
                {
                    Vector2 itemPos = GetPartsObject(item).pos;
                    if ((mousePos.x > (itemPos.x - SELECT_PARTS_SIZE)) &&
                        (mousePos.x < (itemPos.x + SELECT_PARTS_SIZE)) &&
                        (mousePos.y > (itemPos.y - SELECT_PARTS_SIZE)) &&
                        (mousePos.y < (itemPos.y + SELECT_PARTS_SIZE))
                        )
                    {
                        partsType = item;

                        // Debug.Log(partsType);
                        break;
                    }
                }

                foreach (enEditPartsType item in Enum.GetValues(typeof(enEditPartsType)))
                {
                    isMultiParts_[item] = false;
                }

                //コア以外
                foreach (enPartsType item in Enum.GetValues(typeof(enPartsType)))
                {
                    var editParts = PartsConverter.Convert(item);
                    isMultiParts_[editParts] |= (partsType == item);
                    multiOffset_[editParts]   = Vector2Int.zero;
                }

                isRepaint_ = true;

                SetupPartsData(true);
            }
        }
コード例 #12
0
ファイル: MotionTransform.cs プロジェクト: ishidafuu/ecs_nkkd
        //public void SetAngle(enPartsType partsType, enPartsAngle angle)
        //{
        //	int intAngle = (int)angle;
        //	switch (partsType)
        //	{
        //		case enPartsType.Thorax: thorax.angle = intAngle; break;
        //		case enPartsType.Gaster: gaster.angle = intAngle; break;
        //		case enPartsType.Head: head.angle = intAngle; break;
        //		case enPartsType.LeftArm: leftArm.angle = intAngle; break;
        //		case enPartsType.LeftLeg: leftLeg.angle = intAngle; break;
        //		case enPartsType.RightArm: rightArm.angle = intAngle; break;
        //		case enPartsType.RightLeg: rightLeg.angle = intAngle; break;
        //		case enPartsType.Ant: ant.angle = intAngle; break;
        //	}
        //}
        //public enPartsAngle GetAngle(enPartsType partsType)
        //{
        //	int res = 0;
        //	switch (partsType)
        //	{
        //		case enPartsType.Thorax: res = thorax.angle; break;
        //		case enPartsType.Gaster: res = gaster.angle; break;
        //		case enPartsType.Head: res = head.angle; break;
        //		case enPartsType.LeftArm: res = leftArm.angle; break;
        //		case enPartsType.LeftLeg: res = leftLeg.angle; break;
        //		case enPartsType.RightArm: res = rightArm.angle; break;
        //		case enPartsType.RightLeg: res = rightLeg.angle; break;
        //		case enPartsType.Ant: res = ant.angle; break;
        //	}
        //	return (enPartsAngle)res;
        //}
        //public void SetMirror(enPartsType partsType, bool mirror)
        //{
        //	switch (partsType)
        //	{
        //		case enPartsType.Thorax: thorax.mirror = mirror; break;
        //		case enPartsType.Gaster: gaster.mirror = mirror; break;
        //		case enPartsType.Head: head.mirror = mirror; break;
        //		case enPartsType.LeftArm: leftArm.mirror = mirror; break;
        //		case enPartsType.LeftLeg: leftLeg.mirror = mirror; break;
        //		case enPartsType.RightArm: rightArm.mirror = mirror; break;
        //		case enPartsType.RightLeg: rightLeg.mirror = mirror; break;
        //		case enPartsType.Ant: ant.mirror = mirror; break;
        //	}
        //}
        //public bool GetMirror(enPartsType partsType)
        //{
        //	bool res = false;
        //	switch (partsType)
        //	{
        //		case enPartsType.Thorax: res = thorax.mirror; break;
        //		case enPartsType.Gaster: res = gaster.mirror; break;
        //		case enPartsType.Head: res = head.mirror; break;
        //		case enPartsType.LeftArm: res = leftArm.mirror; break;
        //		case enPartsType.LeftLeg: res = leftLeg.mirror; break;
        //		case enPartsType.RightArm: res = rightArm.mirror; break;
        //		case enPartsType.RightLeg: res = rightLeg.mirror; break;
        //		case enPartsType.Ant: res = ant.mirror; break;
        //	}
        //	return res;
        //}
        //public void SetAni(enPartsType partsType, enTransformAni ani)
        //{
        //	int intAni = (int)ani;
        //	switch (partsType)
        //	{
        //		case enPartsType.Thorax: thorax.ani = intAni; break;
        //		case enPartsType.Gaster: gaster.ani = intAni; break;
        //		case enPartsType.Head: head.ani = intAni; break;
        //		case enPartsType.LeftArm: leftArm.ani = intAni; break;
        //		case enPartsType.LeftLeg: leftLeg.ani = intAni; break;
        //		case enPartsType.RightArm: rightArm.ani = intAni; break;
        //		case enPartsType.RightLeg: rightLeg.ani = intAni; break;
        //		case enPartsType.Ant: ant.ani = intAni; break;
        //	}
        //}
        //public enTransformAni GetAni(enPartsType partsType)
        //{
        //	int res = 0;
        //	switch (partsType)
        //	{
        //		case enPartsType.Thorax: res = thorax.ani; break;
        //		case enPartsType.Gaster: res = gaster.ani; break;
        //		case enPartsType.Head: res = head.ani; break;
        //		case enPartsType.LeftArm: res = leftArm.ani; break;
        //		case enPartsType.LeftLeg: res = leftLeg.ani; break;
        //		case enPartsType.RightArm: res = rightArm.ani; break;
        //		case enPartsType.RightLeg: res = rightLeg.ani; break;
        //		case enPartsType.Ant: res = ant.ani; break;
        //	}
        //	return (enTransformAni)res;
        //}

        public void Reset(enPartsType partsType)
        {
            switch (partsType)
            {
            case enPartsType.Body:
                body.Reset();
                break;

            case enPartsType.Head:
                head.Reset();
                break;

            case enPartsType.LeftArm:
                leftArm.Reset();
                break;

            case enPartsType.RightArm:
                rightArm.Reset();
                break;

            case enPartsType.LeftHand:
                leftHand.Reset();
                break;

            case enPartsType.RightHand:
                rightHand.Reset();
                break;

            case enPartsType.LeftLeg:
                leftLeg.Reset();
                break;

            case enPartsType.RightLeg:
                rightLeg.Reset();
                break;

            case enPartsType.LeftFoot:
                leftFoot.Reset();
                break;

            case enPartsType.RightFoot:
                rightFoot.Reset();
                break;

            case enPartsType.Ant:
                ant.Reset();
                break;
            }
        }
コード例 #13
0
        ///<summary>各パーツのギズモ描画</summary>
        void DrawPartsGizmoPoint(enPartsType partsType)
        {
            PartsObject partsObject = GetPartsObject(partsType);

            Vector2 pos = partsObject.pos;

            pos.y = -pos.y;             //上下反転

            Sprite sp = parent_.GetSprite(partsType, sendMotion_.stPassive.isBack, sendMotion_.stPassive.faceNo);

            if (sp != null)
            {
                Vector2 basepos = new Vector2(-sp.pivot.x, +sp.pivot.y - sp.rect.height);
                Vector2 size    = new Vector2(sp.rect.width, sp.rect.height);

                int     MAG      = mag_;
                Vector2 drawPos  = (basepos + camPos_ + pos + tempMovePos_);
                Rect    drawRect = new Rect(drawPos * MAG, size * MAG);
                Handles.color = new Color(1, 1, 1);
                switch (partsType)
                {
                case enPartsType.LeftArm:
                case enPartsType.LeftHand:
                case enPartsType.LeftLeg:
                case enPartsType.LeftFoot:
                    Handles.color = new Color(0, 1, 1);
                    break;

                case enPartsType.RightArm:
                case enPartsType.RightHand:
                case enPartsType.RightLeg:
                case enPartsType.RightFoot:
                    Handles.color = new Color(1, 0, 1);
                    break;
                }

                var rectPos = drawPos;
                rectPos.x += sp.rect.width / 2;
                rectPos.y += sp.rect.height / 2;

                Handles.DrawRectangle((int)partsType, rectPos * MAG, Quaternion.identity, GIZMO_SIZE * MAG);
                // Handles.DrawLine(drawPos * MAG, drawPos * MAG * 2);
            }
        }
コード例 #14
0
ファイル: MotionDefine.cs プロジェクト: ishidafuu/ecs_nkkd
        public static enEditPartsType Convert(enPartsType partsType)
        {
            enEditPartsType res = enEditPartsType._END;

            switch (partsType)
            {
            case enPartsType.Body:
                res = enEditPartsType.Body;
                break;

            case enPartsType.Head:
                res = enEditPartsType.Head;
                break;

            case enPartsType.LeftHand:
                res = enEditPartsType.LeftHand;
                break;

            case enPartsType.RightHand:
                res = enEditPartsType.RightHand;
                break;

            case enPartsType.LeftFoot:
                res = enEditPartsType.LeftFoot;
                break;

            case enPartsType.RightFoot:
                res = enEditPartsType.RightFoot;
                break;

            case enPartsType.LeftArm:
            case enPartsType.RightArm:
                res = enEditPartsType.Arm;
                break;

            case enPartsType.LeftLeg:
            case enPartsType.RightLeg:
                res = enEditPartsType.Leg;
                break;
            }

            return(res);
        }
コード例 #15
0
        ///<summary>グレーアウト表示</summary>
        bool IsDark(enPartsType partsType)
        {
            bool res = false;

            if (focusObject_ == enFocusObject.focusTack)
            {
                var activeTack = parent_.GetActiveScore().GetActiveTackPoint();
                switch (timelineType_)
                {
                case TimelineType.TL_POS:
                case TimelineType.TL_TRANSFORM:
                    res = (isMultiParts_[PartsConverter.Convert(partsType)] == false);
                    break;

                case TimelineType.TL_MOVE:
                    break;

                //case TimelineType.TL_ATARI:
                //	res = !activeTack.motionData_.mAtari.IsAtari(partsType);
                //	break;
                //case TimelineType.TL_HOLD:
                //	res = !isHold;
                //	break;
                case TimelineType.TL_COLOR:
                    res = !activeTack.motionData_.mColor.IsActive(partsType);
                    break;

                case TimelineType.TL_EFFECT:
                    break;

                case TimelineType.TL_PASSIVE:
                    break;
                }
            }
            return(res);
        }
コード例 #16
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;
            }
        }
コード例 #17
0
        ///<summary>各パーツ描画</summary>
        void DrawParts(enPartsType partsType, bool isLabel)
        {
            PartsObject partsObject = GetPartsObject(partsType);
            Vector2     pos         = partsObject.pos;

            //上下反転
            pos.y = -pos.y;

            Sprite sp = parent_.GetSprite(partsType, sendMotion_.stPassive.isBack, sendMotion_.stPassive.faceNo);

            if (sp != null)
            {
                Vector2 basepos = new Vector2(-sp.pivot.x, +sp.pivot.y - sp.rect.height);
                Vector2 size    = new Vector2(sp.rect.width, sp.rect.height);

                Vector2 drawPos = Vector2.zero;
                int     MAG     = mag_;
                if (isLabel)
                {
                    MAG = 5;
                    Vector2 labelpos = new Vector2(128, 256) / MAG;
                    drawPos = (basepos + labelpos + pos);
                }
                else
                {
                    drawPos = (basepos + camPos_ + pos + tempMovePos_);
                }

                Rect drawRect = new Rect(drawPos * MAG, size * MAG);
                if (sendMotion_.stPassive.isLeft)
                {
                    drawRect.x    += drawRect.width;
                    drawRect.width = -drawRect.width;
                }
                Vector2 rotatePivot = new Vector2(drawRect.center.x, drawRect.center.y);
                float   rotate      = partsObject.partsTransform.rotate;

                if ((partsType == enPartsType.LeftArm) ||
                    (partsType == enPartsType.LeftLeg))
                {
                    GUI.color = (isLabel || IsDark(partsType))
                                                ? new Color(0.75f, 0.5f, 0.5f)
                                                : new Color(1, 0.8f, 0.8f);
                }
                else
                {
                    GUI.color = (isLabel || IsDark(partsType))
                                                ? new Color(0.5f, 0.5f, 0.5f)
                                                : new Color(1, 1, 1);
                }

                GUIUtility.RotateAroundPivot(-rotate, rotatePivot);
                GUI.DrawTextureWithTexCoords(drawRect, sp.texture, GetSpriteNormalRect(sp));                 //描画

                // RotateAroundPivot等は行列の掛け算なので、一旦初期値に戻す
                GUI.matrix = Matrix4x4.identity;
                GUI.color  = new Color(1, 1, 1);

                var rectPos = drawPos * MAG;
                rectPos.x += drawRect.width / 2;
                rectPos.y += drawRect.height / 2;
            }
        }
コード例 #18
0
 public PartsObject(enPartsType partsType)
 {
     this.partsType = partsType;
 }
コード例 #19
0
        //public static float PartsAngleBaseZ(enPartsType partsType, enPartsAngle bodyAngle, bool isFlip) {
        //	float res = 0;
        //	float DEPTH = -0.001f;
        //	//描画順
        //	switch (bodyAngle) {
        //		case enPartsAngle.Look: res = LOOKDEPTH.IndexOf((int)partsType) * DEPTH; break;
        //		case enPartsAngle.Back: res = BACKDEPTH.IndexOf((int)partsType) * DEPTH; break;
        //		case enPartsAngle.Side: res = SIDEDEPTH.IndexOf((int)partsType) * DEPTH; break;
        //		case enPartsAngle.Front: res = FRONTDEPTH.IndexOf((int)partsType) * DEPTH; break;
        //		case enPartsAngle.Rear: res = REARDEPTH.IndexOf((int)partsType) * DEPTH; break;
        //	}

        //	//全体が反転してるときはスプライトボードが裏返っているので奥行きを反転
        //	if (isFlip) res = -res;

        //	return res;
        //}

        //ボディ向きから割り出した描画プライオリティリスト
        public static List <enPartsType> GenGetZSortList(bool isLeft, bool isBack)
        {
            List <enPartsType> res = new List <enPartsType>();

            if (isBack)
            {
                foreach (var item in BACK_DEPTH)
                {
                    enPartsType pt = (enPartsType)item;
                    if (isLeft)
                    {
                        if (pt == enPartsType.LeftArm)
                        {
                            pt = enPartsType.RightArm;
                        }
                        else if (pt == enPartsType.RightArm)
                        {
                            pt = enPartsType.LeftArm;
                        }
                        else if (pt == enPartsType.LeftHand)
                        {
                            pt = enPartsType.RightHand;
                        }
                        else if (pt == enPartsType.RightHand)
                        {
                            pt = enPartsType.LeftHand;
                        }
                        else if (pt == enPartsType.LeftLeg)
                        {
                            pt = enPartsType.RightLeg;
                        }
                        else if (pt == enPartsType.RightLeg)
                        {
                            pt = enPartsType.LeftLeg;
                        }
                        else if (pt == enPartsType.LeftFoot)
                        {
                            pt = enPartsType.RightFoot;
                        }
                        else if (pt == enPartsType.RightFoot)
                        {
                            pt = enPartsType.LeftFoot;
                        }
                    }
                    res.Add(pt);
                }
            }
            else
            {
                foreach (var item in FRONT_DEPTH)
                {
                    enPartsType pt = (enPartsType)item;
                    if (isLeft)
                    {
                        if (pt == enPartsType.LeftArm)
                        {
                            pt = enPartsType.RightArm;
                        }
                        else if (pt == enPartsType.RightArm)
                        {
                            pt = enPartsType.LeftArm;
                        }
                        else if (pt == enPartsType.LeftHand)
                        {
                            pt = enPartsType.RightHand;
                        }
                        else if (pt == enPartsType.RightHand)
                        {
                            pt = enPartsType.LeftHand;
                        }
                        else if (pt == enPartsType.LeftLeg)
                        {
                            pt = enPartsType.RightLeg;
                        }
                        else if (pt == enPartsType.RightLeg)
                        {
                            pt = enPartsType.LeftLeg;
                        }
                        else if (pt == enPartsType.LeftFoot)
                        {
                            pt = enPartsType.RightFoot;
                        }
                        else if (pt == enPartsType.RightFoot)
                        {
                            pt = enPartsType.LeftFoot;
                        }
                    }
                    res.Add(pt);
                }
            }
            ////描画順
            //switch (bodyAngle) {
            //	case enPartsAngle.Look: foreach (var item in LOOKDEPTH) res.Add((enPartsType)item); break;
            //	case enPartsAngle.Back: foreach (var item in BACKDEPTH) res.Add((enPartsType)item); break;
            //	case enPartsAngle.Front: foreach (var item in FRONTDEPTH) res.Add((enPartsType)item); break;
            //	case enPartsAngle.Side: foreach (var item in SIDEDEPTH) res.Add((enPartsType)item); break;
            //	case enPartsAngle.Rear: foreach (var item in REARDEPTH) res.Add((enPartsType)item); break;
            //}
            return(res);
        }
コード例 #20
0
        ///<summary>各パーツのギズモ描画</summary>
        void DrawPartsGizmoLine(List <enPartsType> drawList)
        {
            foreach (var partsType in drawList)
            {
                if (partsType == enPartsType.Body)
                {
                    continue;
                }

                enPartsType targetPartsType = enPartsType.Body;
                switch (partsType)
                {
                case enPartsType.Ant:
                    targetPartsType = enPartsType.Head;
                    break;

                case enPartsType.LeftFoot:
                    targetPartsType = enPartsType.LeftLeg;
                    break;

                case enPartsType.RightFoot:
                    targetPartsType = enPartsType.RightLeg;
                    break;

                case enPartsType.LeftHand:
                    targetPartsType = enPartsType.LeftArm;
                    break;

                case enPartsType.RightHand:
                    targetPartsType = enPartsType.RightArm;
                    break;
                }

                PartsObject partsObject  = GetPartsObject(partsType);
                PartsObject targetObject = GetPartsObject(targetPartsType);

                Vector2 pos       = partsObject.pos;
                Vector2 targetPos = targetObject.pos;

                pos.y       = -pos.y;           //上下反転
                targetPos.y = -targetPos.y;     //上下反転

                Sprite sp       = parent_.GetSprite(partsType, sendMotion_.stPassive.isBack, sendMotion_.stPassive.faceNo);
                Sprite targetsp = parent_.GetSprite(targetPartsType, sendMotion_.stPassive.isBack, sendMotion_.stPassive.faceNo);
                if ((sp != null) && (targetsp != null))
                {
                    Vector2 basepos = new Vector2(-sp.pivot.x, +sp.pivot.y - sp.rect.height);
                    Vector2 size    = new Vector2(sp.rect.width, sp.rect.height);

                    int     MAG     = mag_;
                    Vector2 drawPos = (basepos + camPos_ + pos + tempMovePos_);
                    drawPos.x += sp.rect.width / 2;
                    drawPos.y += sp.rect.height / 2;
                    Vector2 drawTargetPos = (basepos + camPos_ + targetPos + tempMovePos_);
                    drawTargetPos.x += targetsp.rect.width / 2;
                    drawTargetPos.y += targetsp.rect.height / 2;

                    switch (partsType)
                    {
                    case enPartsType.LeftArm:
                        drawTargetPos.x += GIZMO_SIZE;
                        drawTargetPos.y -= GIZMO_SIZE;
                        break;

                    case enPartsType.RightArm:
                        drawTargetPos.x -= GIZMO_SIZE;
                        drawTargetPos.y -= GIZMO_SIZE;
                        break;

                    case enPartsType.LeftLeg:
                        drawTargetPos.x += GIZMO_SIZE;
                        drawTargetPos.y += GIZMO_SIZE;
                        break;

                    case enPartsType.RightLeg:
                        drawTargetPos.x -= GIZMO_SIZE;
                        drawTargetPos.y += GIZMO_SIZE;
                        break;
                    }

                    Handles.color = new Color(1, 1, 0);
                    switch (partsType)
                    {
                    case enPartsType.LeftArm:
                    case enPartsType.LeftHand:
                    case enPartsType.LeftLeg:
                    case enPartsType.LeftFoot:
                        Handles.color = new Color(0, 1, 1);
                        break;

                    case enPartsType.RightArm:
                    case enPartsType.RightHand:
                    case enPartsType.RightLeg:
                    case enPartsType.RightFoot:
                        Handles.color = new Color(1, 0, 1);
                        break;
                    }

                    Handles.DrawLine(drawPos * MAG, drawTargetPos * MAG);
                }
            }
        }