Menu
CoddyTech

Inspectorでの接続

CoddyのUnityジャーニー「本格的なゲームを作る」セクションの一部。レッスン 8/56。

ボタンは、AddListenerをまったく使わずに、Inspectorで接続することもできます。ButtonのOn Click ()リストは最初は空です。+を押すと行が追加されます。スクリプトを持つオブジェクトをドラッグして、その行のオブジェクトスロットに入れると、関数のドロップダウンにそのオブジェクトのコンポーネントと、それぞれのpublicメソッドが一覧表示されます。Jukebox > NextTrackを選ぶと、クリックするたびにこのメソッドが呼び出されます。

public class Jukebox : MonoBehaviour
{
    public string[] tracks;
    private int current;

    public void NextTrack()
    {
        current = (current + 1) % tracks.Length;
        Debug.Log("Now playing: " + tracks[current]);
    }
}

ドロップダウンに表示されるのは、publicで、戻り値がvoidであり、パラメーターを取らないか、行で値を設定するint、float、string、boolまたはObjectを1つ取るメソッドです。privateなNextTrackは一覧に表示されないため、選択できません。行にはメソッド名で登録されます。NextTrackをSkipTrackに変更すると、行には<Missing Jukebox.NextTrack>と表示され、クリックしても何も起きません。Consoleにエラーも表示されません。

Inspectorの行は、シーンに配置したボタンに適しています。チームの誰でも、スクリプトを開かずにボタンが何を呼び出すか確認し、変更できます。コード内のAddListenerは、ゲーム実行中に作成するボタンや、変数から値を渡して呼び出す場合に適しており、メソッド名を変更するとコンパイラーが検出します。コードから追加したリスナーはOn Click ()リストには表示されないため、両方の方法で接続したボタンは両方を呼び出します。

challenge icon

チャレンジ

簡単

城の跳ね橋には3つのボタンがあり、InspectorでBridgeControl上のDrawbridgeスクリプトに接続されています。まだどのボタンも動作しません。HierarchyでRaiseButton、LowerButton、LampButtonを選択し、それぞれのOn Click ()の行を確認してください。クリック時に呼び出されるメソッド名が記載されています。Drawbridge.csだけを変更して、3つすべてを動作させましょう。

  • メソッドの1つは、すでに別の名前で書かれています。その行に記載された名前に変更してください。
  • 跳ね橋を上げると、x軸を中心に70度回転し(そのlocalRotation)、statusTextにBridge: upと表示します。
  • ランプのボタンを押すと、warningLampが消灯している場合は点灯し、点灯している場合は消灯します。

Playを押して、すべてのボタンを試してから、Checkを押してください。

自分で試してみよう

using UnityEngine;
using TMPro;

public class Drawbridge : MonoBehaviour
{
    public Transform bridge;
    public TMP_Text statusText;
    public GameObject warningLamp;

    public void LowerBridge()
    {
        bridge.localRotation = Quaternion.Euler(0f, 0f, 0f);
        statusText.text = "Bridge: down";
    }
}
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

本格的なゲームを作るのすべてのレッスン