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

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

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

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

Unity3D

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

Q&A

解決済

Unity C# ランダムな値を代入したい

wataru.404
wataru.404

総合スコア2

C#

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

Unity3D

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

2回答

1グッド

0クリップ

382閲覧

投稿2022/10/12 10:43

編集2022/10/13 03:53

UnityのC#スクリプトについて質問です。
以下の通り、x軸に動く壁のスクリプトを作成し、問題なく作動しました。

csharp

1public class ActiveWall : MonoBehaviour 2{ 3private Vector3 activewall; 4 5void Start() 6{ 7activewall = transform.position; 8float random = Random.Range(1, 5); 9} 10 11void Update() 12{ 13transform.position = new Vector3(Mathf.Sin(Time.time) * 4.0f + activewall.x, activewall.y, activewall.z); 14} 15 16}

上記、x軸に動く幅の「4.0f」の部分を、ランダムにしたいのですが、
どのようにしたらよいのでしょうか?

float random = Random.Range(1, 5);
Debug.Log(random);
をはじめに書くことで、1~5のランダムな数字を取得できることは確認できましたが、
「4.0f」の部分に代入することができません。

わかる方がいらっしゃれば教えていただけると幸いです。

takezoux2👍を押しています

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/10/12 14:54依頼された後にこの質問は修正されています

こちらの質問が他のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

takezoux2

2022/10/12 14:05

コードはコードブロックを使うときれいに表示されます。回答する人も見た目が整っている方が回答しやすいので、修正してもらえると嬉しいです。
wataru.404

2022/10/12 14:54

教えていただき、ありがとうございます。 何から何までお手数をおかけします。

回答2

2

4.0f の代わりに、random とすればどうでしょう

投稿2022/10/12 12:00

編集2022/10/12 12:01
y_waiwai

総合スコア86066

takezoux2, ganta7188❤️を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

2022/10/12 13:37

こちらの回答が他のユーザーから「質問に対する回答となっていない投稿」という指摘を受けました。

1

ベストアンサー

y_waiwaiさんの回答で大丈夫かと思いますが、フルのコードを示すと以下になるかと思います。

csharp

1public class ActiveWall : MonoBehaviour 2{ 3 private Vector3 activewall; 4 private float random; 5 6 void Start() 7 { 8 activewall = transform.position; 9 random = Random.Range(1, 5); 10 } 11 12 void Update() 13 { 14 transform.position = new Vector3(Mathf.Sin(Time.time) * random + activewall.x, activewall.y, activewall.z); 15 } 16 17}

すこしお小言になるかもしれませんが、

  • 変数に値を取っておく

あたりの基礎的な理解が浅いと思いますので、参考書等で学習し直した方が良いかと思います。

投稿2022/10/12 14:07

編集2022/10/12 14:10
takezoux2

総合スコア246

ganta7188❤️を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

wataru.404

2022/10/12 14:58

丁寧かつ迅速なご回答ありがとうございます。 変数に値をとること、ちゃんと理解ができていませんでした。 まだ学びたてのもので、申し訳ございません。 教えていただいた通りに修正したら、うまく動きました。 takezoux2様のように、いつか私も回答する側に回ることができるよう、精進します。 この度は本当にありがとうございます。

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

C#

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

Unity3D

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