C#

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

Unity

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

Q&A

解決済

1回答

1324閲覧

Unity C#の"Random.Range"で値が同時に2つ出てくるエラーについて

beginner55

総合スコア12

C#

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

Unity

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

0グッド

0クリップ

投稿2018/09/21 16:24

前提・実現したいこと

Unityにおいて、一定周期(10秒ごと)で1~4いずれかの値を発生させて用いたいと考えています。

発生している問題・エラーメッセージ

後記のソースコードのように、StartメソッドとUpdateメソッドそれぞれの欄でRandom.Range(min, max)を用いたところ、同時に2つの値が発生しているように見えます。
例えば、StartメソッドにDebug.Logを入れると、Consoleの欄に

[00:14:20] 3
Unity Engine.Debug:Log(Object)
[00:14:20] 1
Unity Engine.Debug:Log(Object)

と表示されました。
1つのRandom.Rangeしか用いていないにもかかわらず、上記表示では、3と1が同じタイミングで発生しているように見えました。
※UpdateメソッドにDebug.Logを入れた場合も同様でした。

該当のソースコード

UnityのC#

1 2using System.Collections; 3 4using System.Collections.Generic; 5 6using UnityEngine; 7 8public class Test : MonoBehaviour { 9 10 float span = 10.0f; 11 12 float delta = 0; 13 14 int pt = 0; 15 16 // Use this for initialization 17 18 void Start() 19 20 { 21 22 pt = Random.Range(1, 5); 23 24 Debug.Log(pt); 25 26 } 27 28 29 // Update is called once per frame 30 31 void Update () { 32 33 this.delta += Time.deltaTime; 34 35 if (this.delta > this.span) 36 37 { 38 39 this.delta = 0; 40 41 pt = Random.Range(1, 5); 42 43 } 44 45 } 46 47}``` 48 49### 試したこと 50 51検索ワード「Unity C# Random.Range 2つの値が同時に表示される」などでGoogle検索をしてみましたが、上記について解説しているホームページは見当たりませんでした。 52 53### 補足情報(FW/ツールのバージョンなど) 54私はUnityの初心者であるため、非常に基本的なことが理解できていない可能性もございます。 55誠に恐縮ですが、ご教示よろしくお願い致します。

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

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

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

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

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

guest

回答1

1

ベストアンサー

こちらの環境だとソースコピペで本来想定されているとおりに動きますね

初心者にありがちなミスでいえば操作になれていないので間違って
2つのオブジェクトにスクリプト貼り付けてるとかありそうですが

投稿2018/09/21 18:25

DeadEndShoot666

総合スコア203

beginner55👍を押しています

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

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

beginner55

2018/09/22 01:52

早速のご回答ありがとうございました。確認したところ、確かに2つのオブジェクトにスクリプトが貼り付けてありました、、、
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問