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; } }
//サブウインドウのパーツオブジェクト取得 PartsObject GetPartsObject(enPartsType partsType) { if (!partsObjects_.ContainsKey(partsType)) { partsObjects_[partsType] = new PartsObject(partsType); } return(partsObjects_[partsType]); }
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); }
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]); }
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); }
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); }
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); }
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); }
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; } }
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; } }
///<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); } }
//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; } }
///<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); } }
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); }
///<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); }
///<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; } }
///<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; } }
public PartsObject(enPartsType partsType) { this.partsType = partsType; }
//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); }
///<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); } } }