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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

1回答

5079閲覧

【Unity】Instantiate直後、生成したオブジェクトにスピードなどの引数を渡してセットする場合、update関数が動くよりも速くセットできるか

kurisan1623

総合スコア36

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2019/11/05 02:33

編集2019/11/05 02:45

知りたいことはタイトルそのままです。
下が生成するスクリプト、上が生成されるオブジェクトのスクリプトです。
上のアップデート関数については省略しています。

Shot.cs

c#

1public class Shot : MonoBehaviour { 2 // アップデート関数で速度を調整(省略) 3 4 // 移動速度を設定 5 // @param direction 角度 6 // @param speed 速さ 7 public void Create(float direction, float speed) { 8 Vector2 v; 9 v.x = Mathf.Cos (Mathf.Deg2Rad * direction) * speed; 10 v.y = Mathf.Sin (Mathf.Deg2Rad * direction) * speed; 11 rigidbody2D.velocity = v; 12 } 13}

Player.cs

c#

1 GameObject prefab; // あらかじめアタッチしたShotオブジェクト 2 // 弾を生成 3 GameObject shot = Instantiate (prefab, transform.position, transform.rotation) as GameObject; 4 // Shotスクリプトオブジェクトを取得 5 Shot s = shot.GetComponent<Shot>(); 6 // 移動速度を設定 7 s.Create(direction, speed);

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

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

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

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

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

guest

回答1

0

ベストアンサー

多分無理だと思います。
なので変数1つ作って初期値false、Createの中でtrueにして、Updateでは「その変数がfalseなら何もしない」とするのが楽かと思います。

投稿2019/11/05 06:31

sakura_hana

総合スコア11427

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問