Unity3Dのゲームのためにシステムに取り掛かりたいので、プロパティに関数を渡すだけで簡単にプロパティを表示できます。しかし、それを機能させるためには、私はプロパティの名前が必要で、私はそれを正しく得ることができません。今、これは私が作ったものです。
私の "インスペクタスクリプト"では、基本的にはこれだけです。これは、 "他の"ものを扱う継承された関数を呼び出します。この場合、 'value'はUnityのTransformコンポーネントで、 'position'はVector3プロパティです。今C#&Unity - オブジェクトとしてプロパティを渡してプロパティ名を取得する
DoUI(value.position);
「DoUI」機能
protected virtual void DoUI(object property)
{
Type type = property.GetType();
Debug.Log("Type ToString: " + type.ToString() + " | Name: " + type.Name + " | Full Name: " + type.FullName);
}
、関数は、デバッグメッセージを出力し、そのを見ることで、私はそれが正しいではないことがわかります。これは私にタイプ名、この場合はVector3を与えます。そして、はい、私はあなたがコードを見ることでそれをはっきりと見ることができることを知っています。
質問が残っているので、ユーザーが複雑なリフレクションコールを行うことなく、「そのまま」渡すだけでどのようにプロパティ名を取得できますか?それが「DoUI」のためのものです。
リフレクションを使用する必要がありますhttps://msdn.microsoft.com/en-us/library/system.reflection.memberinfo.name.aspx – Bijan
@Bijan私はそれを認識していますが、どのようにこの場合、反射を使用することができます。 – Hertzole