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

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

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

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

Unity3D

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

Q&A

解決済

1回答

456閲覧

UnityのRandom.Range文がスペルミスで"Random.Renge"となっているにも関わらず、エラーが出ずに問題無く動いています。

water

総合スコア6

C#

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

Unity3D

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

0グッド

0クリップ

投稿2023/10/02 05:14

前提

約3年前に制作して未完成になっていたゲームの修正作業を行っています。
その途中で、スペルミスで本来エラーが出る筈にも関わらず、エラー無しで問題なく動作しているコードを発見しました。

こちらのコードの17行目なのですが、正しくは”Random.Range()”の筈で誤って"Random.Renge"と書いてしまっているのに、何故か問題なく動いています。
しっかりと指定した範囲内でランダムな座標にゲームオブジェクトが生成されています。

今日別のオブジェクトをランダムな位置に生成させるために、新しく別の.csファイルに”Randam.Renge()”とスペルミスのコードを書き、そちらではエラーが出た事がきっかけで発見しました。

この理由がわかる方はいますか?

該当のソースコード

C#

1 1 using System.Collections; 2 2 using System.Collections.Generic; 3 3 using Photon.Pun; 4 4 using Photon.Realtime; 5 5 using UnityEngine; 6 6 7 7 public class InitNetObj : MonoBehaviourPunCallbacks 8 8 { 9 9 ExitGames.Client.Photon.Hashtable hashtable = new ExitGames.Client.Photon.Hashtable(); 10 10 public GameObject unkoman { get; private set; } 11 11 12 12 void Awake() 13 13 { 14 14 hashtable["Preparing"] = false; 15 15 PhotonNetwork.LocalPlayer.SetCustomProperties(hashtable); 16 16 17 17 var StartPos = new Vector3(Random.Renge(-10f, 10f), 4f, Random.Renge(-10f, 10f)); 18 18 unkoman = PhotonNetwork.Instantiate("UnkomanEmpty", StartPos, Quaternion.identity, 0); 19 19 } 20 20 } 21

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

Unity 2020.2.0f1

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

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

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

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

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

guest

回答1

0

ベストアンサー

あるとしたら3年前に実装したオレオレ乱数機を実装しているんじゃないですか
UnityEngineしか名前空間をusingしてないところを見るとそんな気がします
それともPhoton関連にそういうメソッドがあるんですかね?流石にそんなことはないと思うのですが
試しにIDEで参照関係をおっかけてみましょう

c#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine;//名前空間になぜかUnityEngine.Randomがないよ・・・ 4 5//オレオレクラス 6public sealed class Random : RandomBase 7{ 8 public static float Renge(float a, float b) 9 { 10 return 0f;//ここにオレオレ乱数エンジンがあると仮定する 11 } 12} 13 14public class Test : MonoBehaviour 15{ 16 17 // Start is called before the first frame update 18 void Start() 19 { 20 Random.Renge(10f, 20f);//偽物 21 UnityEngine.Random.Range(0f, 1f);///本物 22 23 } 24}

他にあるとしたら実はそのクラスは使ってないしよく見たら別プロジェクトのものを開いてる(何個も同時に開発をやってるとたまにある)ぐらいじゃないですかね、まあ試しにVisualStudioとかちゃんとしたIDEで一回参照回りを確認してみてください

参考文献
https://zenn.dev/mattak/articles/c1ad966e5d11d3

投稿2023/10/02 16:13

UnitySoldier

総合スコア207

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

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

water

2023/10/03 04:48

ありがとうございます。 時間のある際にじっくり確認してみようと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問