FC2ブログ
    10 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 12

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    昨日ベーマガのイベントいってきたんよ。おもろかったんよ。んで、エディタ拡張初心者編2巻なんよ。 

    こんにちは!坂内っす。

    昨日はベーマガのイベントいってきたんですよ。
    ベーマガしってます?
    マイコンBASICマガジンっていう雑誌なんですけどね。
    これこれ ↓
    http://basicmagazine.wix.com/aabm

    いやー 面白かった!普段は全然こういうイベントとか行かないんですけどね、「PC=高価なゲーム機」って感じで中学校の時から触ってたので、すごい懐かしい感じ一杯でした。
    9割以上がおっさんというイベントでしたが、面白いトークが聞けて良かったっすよ。


    ってことで、よーし!エディタ拡張2回目!

    今日も初心者っぽいのをやってくよ!

    前回はint、string、enumの値をInspectorで入れる時にラベルでわかりやすくするってことやりましたけど、今回も引き続き、ラベルで見やすくする編。

    今回はスライドバーでintの範囲を決めさせたり、boolのチェックボックスとかも置いたりしてみました。

    Step1.cs
    using UnityEngine;
    using UnityEngine.UI;
    using System.Collections;

    public class Step1 : MonoBehaviour {
    public int testNo;
    public string testName;
    public enum USE_COLOR {
    RED,
    BLUE,
    GREEN,
    WHITE,
    };
    public bool bossFlg;
    public int enemyHP;
    public Vector2 initPosition;
    public Color enemyColor;

    public USE_COLOR useColor;

    public Text txtNo;
    public Text txtName;
    void Start() {
    txtNo.text = testNo.ToString();
    txtName.text = testName;
    }
    }


    Step1Editor.cs
    using UnityEngine;
    using UnityEditor;

    [CustomEditor(typeof(Step1))]
    public class Step1Editor : Editor{
    public override void OnInspectorGUI() {
    var obj = target as Step1;
    EditorGUILayout.ObjectField("クラス",(Step1)obj,typeof(Step1),true);
    obj.testNo = EditorGUILayout.IntField("なにかのNO", obj.testNo);
    obj.testName = EditorGUILayout.TextField("なにかの名前", obj.testName);
    obj.useColor = (Step1.USE_COLOR)EditorGUILayout.EnumPopup("使用する色",obj.useColor);
    obj.txtNo = (UnityEngine.UI.Text)EditorGUILayout.ObjectField("UI-ナンバー", obj.txtNo,
    typeof(UnityEngine.UI.Text), true);
    obj.txtName = (UnityEngine.UI.Text)EditorGUILayout.ObjectField("UI-名前", obj.txtName,
    typeof(UnityEngine.UI.Text), true);
    EditorGUILayout.Separator();
    EditorGUILayout.LabelField("敵情報");
    obj.bossFlg = EditorGUILayout.Toggle("ボス", obj.bossFlg);
    obj.enemyHP = EditorGUILayout.IntSlider("敵のHP",obj.enemyHP,0,10000);
    obj.initPosition = EditorGUILayout.Vector2Field("敵の初期位置", obj.initPosition);
    obj.enemyColor = EditorGUILayout.ColorField("敵の色",obj.enemyColor);
    }
    }


    って感じにすると、こうなります。


    まだ凄さが分からない!エディタ拡張の神髄はどこにあるの!
    また来週勉強してみます!

    ではアデュ~ノシ

    Category: 開発日記(Unity)

    tb 0 : cm 0