/// <summary> /// 矩形を追加する /// </summary> /// <param name="tName"></param> /// <param name="tOffset"></param> /// <param name="tPivot"></param> /// <param name="tSize"></param> /// <param name="tRotation"></param> /// <param name="tColor"></param> /// <param name="tUV"></param> /// <param name="tPriority"></param> public void AddRectangle(string tName, float tOffsetX, float tOffsetY, float tPivotX, float tPivotY, float tSizeX, float tSizeY, Color tColor, string tSpriteName, float tPadding, int tPriority) { ComplexRectangle tComplexRectangle = _complexRectangle; if (tComplexRectangle == null || m_AtlasSprite == null || string.IsNullOrEmpty(tSpriteName) == true || m_AtlasSprite[tSpriteName] == null) { return; } Vector2 tOffset = new Vector2(tOffsetX, tOffsetY); Vector2 tPivot = new Vector2(tPivotX, tPivotY); Rect tUV = m_AtlasSprite[tSpriteName].textureRect; // Vector2 tSize = new Vector2( tUV.width, tUV.height ) ; Vector2 tSize = new Vector2(tSizeX, tSizeY); // 座標をテクスチャ系に変換する float tTW = m_AtlasSprite.texture.width; float tTH = m_AtlasSprite.texture.height; tUV.xMin = (tUV.xMin + tPadding) / tTW; tUV.yMin = (tUV.yMin + tPadding) / tTH; tUV.xMax = (tUV.xMax - tPadding) / tTW; tUV.yMax = (tUV.yMax - tPadding) / tTH; // Debug.LogWarning( "UV:" + tUV ) ; tComplexRectangle.AddRectangle(tName, tOffset, tPivot, tSize, 0, tColor, tUV, tPriority); }
/// <summary> /// 矩形を全て削除する /// </summary> public void ClearRectangle() { ComplexRectangle tComplexRectangle = _complexRectangle; if (tComplexRectangle == null) { return; } tComplexRectangle.ClearRectangle(); }
/// <summary> /// 矩形を削除する /// </summary> /// <param name="tName"></param> public void RemoveRectangle(string tName) { ComplexRectangle tComplexRectangle = _complexRectangle; if (tComplexRectangle == null) { return; } tComplexRectangle.RemoveRectangle(tName); }
//----------------------------------------------------------- /// <summary> /// 矩形を追加する /// </summary> /// <param name="tName"></param> /// <param name="tOffset"></param> /// <param name="tPivot"></param> /// <param name="tSize"></param> /// <param name="tRotation"></param> /// <param name="tColor"></param> /// <param name="tUV"></param> /// <param name="tPriority"></param> public void AddRectangle(string tName, Vector2 tOffset, Vector2 tPivot, Vector2 tSize, float tRotation, Color tColor, Rect tUV, int tPriority) { ComplexRectangle tComplexRectangle = _complexRectangle; if (tComplexRectangle == null) { return; } tComplexRectangle.AddRectangle(tName, tOffset, tPivot, tSize, tRotation, tColor, tUV, tPriority); }
/// <summary> /// 矩形を追加する /// </summary> /// <param name="tName"></param> /// <param name="tOffset"></param> /// <param name="tPivot"></param> /// <param name="tSize"></param> /// <param name="tRotation"></param> /// <param name="tColor"></param> /// <param name="tUV"></param> /// <param name="tPriority"></param> public void AddRectangle(string tName, Vector2 tOffset, Vector2 tPivot, Vector2 tSize, float tRotation, Color tColor, string tSpriteName, int tPriority) { ComplexRectangle tComplexRectangle = _complexRectangle; if (tComplexRectangle == null || m_AtlasSprite == null || string.IsNullOrEmpty(tSpriteName) == true || m_AtlasSprite[tSpriteName] == null) { return; } Rect tUV = m_AtlasSprite[tSpriteName].textureRect; tComplexRectangle.AddRectangle(tName, tOffset, tPivot, tSize, tRotation, tColor, tUV, tPriority); }
/// <summary> /// スンスペクター描画 /// </summary> public override void OnInspectorGUI() { // とりあえずデフォルト // DrawDefaultInspector() ; //-------------------------------------------- // ターゲットのインスタンス ComplexRectangle tTarget = target as ComplexRectangle; // Graphic の基本情報を描画する DrawBasis(tTarget); EditorGUILayout.Separator(); // 少し区切りスペース // オフセット Vector2 tOffset = EditorGUILayout.Vector2Field("Offset", tTarget.offset); if (tOffset.Equals(tTarget.offset) == false) { Undo.RecordObject(tTarget, "ComplexRectangle : Offset Change"); // アンドウバッファに登録 tTarget.offset = tOffset; EditorUtility.SetDirty(tTarget); } // データ配列 SerializedObject tSO = new SerializedObject(tTarget); SerializedProperty tSP = tSO.FindProperty("rectangle"); if (tSP != null) { EditorGUILayout.PropertyField(tSP, new GUIContent("Rectangle"), true); } tSO.ApplyModifiedProperties(); // テクスチャ Texture2D tTexture = EditorGUILayout.ObjectField("Texture", tTarget.texture, typeof(Texture2D), false) as Texture2D; if (tTexture != tTarget.texture) { Undo.RecordObject(tTarget, "ComplexRectangle : Texture Change"); // アンドウバッファに登録 tTarget.texture = tTexture; EditorUtility.SetDirty(tTarget); } }
//---------------------------------------------------------------------- /// <summary> /// 各派生クラスでの初期化処理を行う(メニューまたは AddView から生成される場合のみ実行れる) /// </summary> /// <param name="tOption"></param> override protected void OnBuild(string tOption = "") { ComplexRectangle tComplexRectangle = _complexRectangle; if (tComplexRectangle == null) { tComplexRectangle = gameObject.AddComponent <ComplexRectangle>(); } if (tComplexRectangle == null) { // 異常 return; } //---------------------------- tComplexRectangle.rectangle.Add(new ComplexRectangle.Rectangle()); // Default tComplexRectangle.color = Color.white; ResetRectTransform(); }