2

プレハブボタンとパネルで作成された単純なプレハブがあります。ボタンはパネルの内側に配置されるため、パネルの子になります。プレハブを保存しましたが、すべて問題ありません。

次に、ボタンにクリック イベントを追加しました。そのため、使用したいスクリプトが配置されているゲームオブジェクトを追加し、使用する正しいメソッドを選択しました。プレハブを更新し、シーンから削除しました。

ここで、Resources.Load("myUIprefab"); を使用してシーンでこのプレハブをインスタンス化すると、パネル、ボタン、色/設定が正しく表示されます。

ただし、クリック ボタン自体には何も接続されていません。その結果、ボタンは何もしません。

後で使用するためにオブジェクトを保存する方法であるプレハブではありませんか? その場合、クリック設定を保持する必要があります。これはバグですか、それとも新しい Unity UI システムの残念な実装ですか? ボタンや別の GUI 要素からプレハブを作成しても、click() やその他のデリゲートが満たされていない場合、ほとんど意味がありません。

4

3 に答える 3

4

プレハブに格納されているゲームオブジェクトは、同じプレハブ内の他のオブジェクトへの参照、または他のプレハブへの参照のみを保持できます。これは、オブジェクト参照、イベントなどに当てはまります。

イベントを持続させたい場合は、同じプレハブにイベント ハンドラーを用意し、それをボタンで呼び出す必要があります。これは、呼び出されたときに標準の .Net イベントを発生させる単純なハンドラー メソッドにすることができます (.Net イベントは、Unity イベントよりも使いやすい場合があります)。

于 2016-02-28T10:52:56.033 に答える