///<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 { } }
///<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; } }