6

Unity には非常に単純なクラス UnitRange (最小範囲と最大範囲があります) があります。

[System.Serializable]
public class UnitRange {
    public int Minimum;
    public int Maximum;
}

そして、これはインスペクターに表示されます (このタイプのパブリック変数を作成した場合)。ただし、デフォルトの表示方法はあまり良くありません。

ここに画像の説明を入力

さて、私はこれをどのように変更できるか疑問に思っていましたか?モノビヘイビアーのインスペクターを変更する方法を見つけましたが、他のクラスのインスペクターを変更する方法は見つかりませんでした。次のように、2つの数字が隣り合っているだけにしたいと思います。

ここに画像の説明を入力

それはほんの小さなことであり、それができなくてもそれほど大きな問題ではありません。

そうそう、お気づきかもしれませんが、私は c# を使用しているので、サンプル コードが c# であるとよいでしょう。

ありがとう。

4

3 に答える 3

2

これは、Unity の以降のバージョンでは当てはまりません。

これは不可能であることがわかりました。

これを行う唯一の方法は、モノビヘイビアーで使用するときはいつでも、そのモノビヘイビアーにカスタムインスペクターを与え、そこでクラスにカスタムレイアウトを与えることです。これを簡単にするために、レイアウトを行うメソッドを作成し、それを各モノビヘイビアーで使用できます。

于 2012-11-13T17:09:01.400 に答える
0

カスタムインスペクターを少なくする必要がある解決策の1つは、コンポーネントを作成するUnitRangeことです。UnitRange注釈を付けることができる必要があるもの[RequireComponent (typeof (UnitRange))]はすべて、自分で追加する手間をかける必要がありません。取り付けられているのがそれだけであることを確認してくださいUnitRange(そうでない場合は、エラー/削除など)。

次に、さまざまなユニットに、使用時に接続されたユニット範囲コンポーネントをキャッシュさせ、後でStart()使用GetComponent<UnitRange>()できるようにします(現在のように、可視性をプライベートに変更して再利用するだけの場合)。

最後に、見栄えのするUnitRangeのインスペクターを記述します。

于 2012-11-15T21:06:31.887 に答える