2017-09-06 13 views
1

インスペクタタブでは、複雑なスクリプトの一部として公開変数、チェックボックス、およびボタンが表示されます。「インスペクタ」タブのボタンをスクリプトから「押し込む」方法は?

このスクリプト内の対応する関数を見つけて呼び出すことなく、C#を使用してボタン/チェックボックスを「押す」、またはインスペクタタブで変数に値を設定するにはどうすればよいですか?

このように、インスペクタタブのボタンを手動で押した場合と同じ効果が得られます。

+1

具体的なことができますか?あなたは 'GetComponent.Collider2D.isTrigger = true;'を実行するcollider2DのisTriggerボックスをチェックしたいと思ったら何かを意味しますか? – ryeMoss

+0

@ryemossありがとう、しかし私はカスタムスクリプトを意味します。インスペクタタブでは、入力フィールド、チェックボックス、およびボタンが表示されます。インスペクタのカスタムスクリプトボタンを別のスクリプトから「クリック」できますか?または、唯一の方法は同じ関数を呼び出すことです。これは手動でチェックボックスをクリックすると呼び出されます。 – Rumata

+0

@Rumata正しい場合は、ボタンがクリックしているメソッドを呼び出す必要があります。例えば、あなたのボタンが 'Generate Terrain'であるとしましょう - ボタンメソッド本体は 'GenerateTerrain(); CleanUp(); ' - スクリプトはその一連のイベントを呼び出す必要があります。チェックボックスのようなものは、プロパティの値を設定することなどです。 – DeeKayy90

答えて

0
public Button myButton; 

myButton.onClick.Invoke(); 

これはあなたが探しているものですか?

+0

ありがとうございますが、正確ではありません。カスタムスクリプトがあり、[インスペクタ]タブにはパブリック入力フィールド、ボタン、チェックボックスが表示されます。たとえば、C#を使用してinnspectorタブのチェックボックスをクリックできますか?または、唯一の方法は、チェックボックスをクリックしているときに呼び出されている関数を探し出し、同じ関数を呼び出すことです。 – Rumata

0

インスペクタに空のGameObjectを作成すると、ゲームオブジェクトのコンポーネントが表示されます。参照を追加できるトランスフォームコンポーネントが表示されますpublic GameObject nameYouWantedのような別のGameObjectのスクリプト内に、スロットが表示されますGameObjectのインスペクタは、nameYouWantedという名前のスクリプトに添付されており、作成したゲームオブジェクトをドロップすることができます。
これまでのところ、別のGameObjectにスクリプトを作成して空のGameObjectを作成しましたが、このステップでは、someVariable = nameYouWanted.transform.positionをstartまたはプログラムの更新機能に書き込むだけでSecond GameObjectのトランスフォームコンポーネントにアクセスできます。 それだけ!以下の場合

public GameObject varName

公共があることがあるような単純な
、あなたは

はJUSTことを覚えておいてくださいpublic Camera mainCameraを書き込むことによってmainCameraのカメラコンポーネントにアクセスして、カメラのコンポーネントにアクセスすることができます変数アクセシビリティレベル
ゲームオブジェクトは、コンポーネントタイプ
です。 arNameは明らかであるので、ここで


変数名である初心者のためのトリッキーな部分です:
例えば 私は私のカメラでこのコンポーネント

Components

がどのように私は、たとえばアクセスすることができていますLensDistortionBlur変数? または別のもの、つまり霜成分ですか?
答えは: あなたはこの画像は効果をグリッチに関連する

public LensDistortionBlur LensDistortionBlurEffect; 

のようなスクリプトでそれへの参照を追加する必要があります。
enter image description here

あなたはMonoDevelopのが示しているかを確認します使用するコンポーネント変数???

このインスペクタでは、このスロット(LensDistortionBlurを含む)にターゲットGameObjectを追加します.LensDistortionBlurをコンポーネントタイプとして指定しただけで、スクリプトはLensDistortionBlurコンポーネントからそのLensDistortionBlurコンポーネントを尋ね、他のものは使用しませんものは、あなたが望む任意の関数の内部を使用して、その中 もっと重要なことは、はい、あなたがそれにアクセスしたいコンポーネント名を使用する必要があり、LensDistortionBlurあるコンポーネントタイプで、詳細情報はHere

です

あなたの場合
あなたが言及したそれらのバールと変数は、上で説明したソリューションによってアクセスできます!

+0

ありがとう、これは本当に役に立つ説明です!しかし、私の質問です - この方法の代替ですか? ボタンがあり、それをクリックするといくつかの関数が呼び出されるとします。ですから、インスペクタで手動でクリックするだけで、それをクリックするだけで何もする必要はありません。だから私の質問です - ちょうどC#を使用してボタンをクリックすることはできますか? このボタンの「クリック」イベントをトリガすることはできますが、ボタンを呼び出す必要はありません。 – Rumata

+0

あなたは何を知っていますか?あなたが言うボタンは機能を実行するのですか?だからシンプルです。そのスクリプトを参照し、その関数を参照して見つけて実行することができます。 –

関連する問題