質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Q&A

解決済

1回答

614閲覧

プレハブ化したキャラクターをスクリプトで生成し、JoyStickで操作したいができない

araragi_dev

総合スコア60

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

0グッド

0クリップ

投稿2021/09/30 15:04

■疑問点
Canvas上のDynamicJoystickが、プレハブ化したキャラクターにつけることができません。
付け方を教えていただけないでしょうか?

■参考動画
https://www.youtube.com/watch?v=7zFp4XDY9f0

■画像
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

prefabのスクリプトのstart又はawake関数に以下を記載します。

GameObject joystick = GameObject.Find("Dynamic Joystick"); //または Joystick joystick = GameObject.Find("Dynamic Joystick").GetComponent<Joystick>();

*上記のJoystickは正式な型名に置き換えてください。

投稿2021/10/01 02:24

YOshim

総合スコア1085

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

araragi_dev

2021/10/01 13:53

YOshimさん ご回答ありがとうございます。以下のコードをStartに入れてみました。 「GameObject joystick = GameObject.Find("Dynamic Joystick");」 しかし実行するとエラーが表示されてしまいました。 GameObject型のjoystickにはDynamic Joystickオブジェクトが代入されていそうですが、 エラー文から、おそらく生成したインスタンスにJoystickオブジェクトが正常に設定できていないようです。 お手数おかけいたしますが、ご教授願えませんでしょうか? (どうにかしてDynamicJoystick型のjoystick変数に、GameObject方のDynamic Joystickオブジェクトが入れば解決するのでしょうか?しかし型が違うのでどのようにしたらいいかわからず…またGetComponentを使えばできるとの情報がありますが、そのやり方が調べても良くわかりません…) 素人質問で大変恐縮ですが、よろしくおねがいします。 ■エラー NullReferenceException: Object reference not set to an instance of an object UnityChan.UnityChanControlScriptWithRgidBody.FixedUpdate () (at Assets/unity-chan!/Unity-chan! Model/Scripts/UnityChanControlScriptWithRgidBody.cs:87) ■ソースコード一部 ~抜粋~ public DynamicJoystick joystick; // 初期化 void Start () { // Animatorコンポーネントを取得する anim = GetComponent<Animator> (); // CapsuleColliderコンポーネントを取得する(カプセル型コリジョン) col = GetComponent<CapsuleCollider> (); rb = GetComponent<Rigidbody> (); //メインカメラを取得する cameraObject = GameObject.FindWithTag ("MainCamera"); // CapsuleColliderコンポーネントのHeight、Centerの初期値を保存する orgColHight = col.height; orgVectColCenter = col.center; Gameobject joystick = GameObject.Find("Dynamic Joystick");         //Dynamic Joystickという名前のオブジェクトを探す Gameobject型 } // 以下、メイン処理.リジッドボディと絡めるので、FixedUpdate内で処理を行う. void FixedUpdate () { //ここも追記修正した if (!photonView.IsMine) { return; } //joystickを使った入力 float h = joystick.Horizontal; float v = joystick.Vertical; ~抜粋~
YOshim

2021/10/01 23:47

joystick = GameObject.Find("Dynamic Joystick").GetComponent< DynamicJoystick >(); とすれば良いです
araragi_dev

2021/10/02 03:16

ありがとうございます!正常に動きました!朝早くからご回答いただき本当に感謝致します! Dynamic Joystickオブジェクトというより、DynamicJoystickスクリプトをjoystickに代入し、そのスクリプト内の変数を使えるようにした…と解釈しました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問