[過去ログ]
【ゲームエンジン】Unityなんでも質問スレpart12 (1002レス)
【ゲームエンジン】Unityなんでも質問スレpart12 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
167: 名前は開発中のものです。 [] 2023/11/25(土) 11:21:33.25 ID:FGDWLLI7 すみません、2つ質問させてください。 1 乱数を返すRandom.Range();がありますよね? これはこちらが最小値と最大値を決めて、返すわけですが 「0」が要らない場合、Random.Range(1,4);にすると 1,2,3のどれかを返す、という認識で間違い無いですか? 2 あと、最小値最大値の範囲ではなくて、 例えばこちらが数値をいくつか決めて それのどれかを返す、みたいな関数ないですか? 例えば、「1か4を返す」とか「23か34か40を返す」とか そんな感じです。 Random.Range(23,34,40);とかそんな感じの。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/167
170: 名前は開発中のものです。 [] 2023/11/25(土) 12:21:04.16 ID:FGDWLLI7 >>168 >特定の数値をList<int>にぶち込んでこれ呼び出せばランダムな値取ってきてくれる おお、そのやり方があった、、、ありがとうございます。 あとひとつだけ質問させてください。 配列に入ってる各オブジェクトの中で、 自分の手前(自分より添え字が若い方)の情報を取りたいんですが 何かいい関数、または方法ってありますか? オブジェクトの中で 配列[自分より一つ若い添字].ゲッター で変数の情報を見たいんです。 自分の現在の添え字を出す関数があれば、-1でひとつ若い添字が出せるかなと思ってるんですが そんなのありますか? http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/170
175: 名前は開発中のものです。 [] 2023/11/25(土) 17:04:09.42 ID:FGDWLLI7 >>171 すみません、 string prevValue = null; foreach (string value in strList) { // 何か処理(ここでprevValueを参照すると1つ前の値が取れる) prevValue = value; } このコードって相手がlistじゃ無くて配列でも使えますか? あと目的の変数はintで、それぞれの変数の値がかぶっていないわけではないので IndexOfで自分の位置を割り出すのは無理かと思います。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/175
176: 名前は開発中のものです。 [] 2023/11/25(土) 17:11:03.39 ID:FGDWLLI7 あと今配列を勉強してて新たに疑問に思うことがあるんですが Array01 = new GameObject[10]; Array02 = new GameObject[10]; GameObject obj = (GameObject)Resources.Load("prefab_obj"); for (int i = 0; i < Array01.Length; i++) { Instantiate(obj, new Vector2(0.0f, 0.0f), Quaternion.identity); } for (int i = 0; i < Array02.Length; i++) { Instantiate(obj, new Vector2(0.0f, 0.0f), Quaternion.identity); } これで、prefab_objが詰まった配列のArray01とArray02が出来上がるんですが それぞれのfor文の処理に配列のArray01とArray02を指定するコードがありませんよね? なのになぜArray01とArray02にちゃんと入ったのか、不思議なんです。 というのも「Array01」「Array02」という記載は長さを返す「.Length」にしか使っていません。 それで配列まで指定したfor文になっているということでしょうか? http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/176
179: 名前は開発中のものです。 [] 2023/11/25(土) 17:25:23.98 ID:FGDWLLI7 >>178 ですよね??? でも入ってるんです、ほんとに。 実行して、ちゃんと理想通りになってるんで 「なんで?」って思って質問させてもらいました。 厳密に記載すると 最初に定義もしてます。 public GameObject[] Array01; public GameObject[] Array02; void Start() { Array01 = new GameObject[10]; Array02 = new GameObject[10]; GameObject obj = (GameObject)Resources.Load("prefab_obj"); for (int i = 0; i < Array01.Length; i++) { Instantiate(obj, new Vector2(0.0f, 0.0f), Quaternion.identity); } for (int i = 0; i < Array02.Length; i++) { Instantiate(obj, new Vector2(0.0f, 0.0f), Quaternion.identity); } } これです。 これでちゃんと入ってるんですよ。 なぜです???? http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/179
184: 名前は開発中のものです。 [] 2023/11/25(土) 17:37:24.49 ID:FGDWLLI7 >>180 おかしいって言われましても。。。 ちなみに片方のfor文コメントアウトすると 配列はひとつだけになりますし、、、機能してるとしか。。 >>182 中身も入ってます、といってもprefabオブジェクト内の変数は すべてプレハブのスクリプトの方で初期化してるんで こっちでは2つの配列にプレハブを生成して入れてるだけの処理です。 皆さんにおかしいおかしい言われて、非常に今不安なんですけど、、、 自分のやり方おかしいのかなって。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/184
186: 名前は開発中のものです。 [] 2023/11/25(土) 17:40:43.49 ID:FGDWLLI7 >>183 再生したら、配列に突っ込んだオブジェクトが 10個ずつ描画(実際はfor文内でVector2の座標を増加させながら入れるんで)されてるんで、 これは全部ちゃんと入ってるってことじゃないですか? そんなにおかしい状態ですか。。どういうことですか? http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/186
189: 名前は開発中のものです。 [] 2023/11/25(土) 17:44:46.17 ID:FGDWLLI7 >>185 すみません、そのfor文のあとに Debug.Logはなんて記載すればいいですか? Debug.Log(ここに何書けばいいですか?); http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/189
193: 名前は開発中のものです。 [] 2023/11/25(土) 17:53:48.93 ID:FGDWLLI7 >>191 あああああああああああああああああ None、すなわちnullでした。。。 でもどういうことですか、、、 入ってないなら入ってないで、 なぜ座標がちゃんと入った プレハブオブジェクトが配列の添字の数だけ並ぶんです? http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/193
195: 名前は開発中のものです。 [] 2023/11/25(土) 18:02:22.81 ID:FGDWLLI7 でも、なんか納得できません。 for文の両方をコメントアウトして再生押すと プレハブのオブジェクト自体の存在も無くなります。 for文の処理はプレハブを配列数分作るカギになってると思います。 どういうことでしょうか。。。。。。。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/195
196: 名前は開発中のものです。 [] 2023/11/25(土) 18:06:36.44 ID:FGDWLLI7 >>194 Debug.Log(array01[0].name);は オブジェクト参照がオブジェクトのインスタンスに設定されていません のエラーが出ました。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/196
198: 名前は開発中のものです。 [] 2023/11/25(土) 18:09:09.19 ID:FGDWLLI7 Debug.Log(array01[0]);だと Nullでした。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/198
203: 名前は開発中のものです。 [] 2023/11/25(土) 18:19:16.69 ID:FGDWLLI7 とりあえず、これで↓配列内にはプレハブが入ってくれました。 記述からして当然なんですけど。。。 public GameObject[] Array01; public GameObject[] Array02; void Start() { Array01 = new GameObject[10]; Array02 = new GameObject[10]; GameObject obj = (GameObject)Resources.Load("prefab_obj"); for (int i = 0; i < Array01.Length; i++) { Array01[i]=Instantiate(obj, new Vector2(0.0f, 0.0f), Quaternion.identity); } for (int i = 0; i < Array02.Length; i++) { Array02[i]=Instantiate(obj, new Vector2(0.0f, 0.0f), Quaternion.identity); } } ただ、自分が知りたかったのは Array01,Array02を指定しなくても座標が変わりながらの ちゃんとArray01,Array02の添字分、 プレハブオブジェクトが並んだことです。。 for文を消せば、それぞれのプレハブも存在しないんです。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/203
204: 名前は開発中のものです。 [] 2023/11/25(土) 18:20:31.48 ID:FGDWLLI7 あ、それぞれVector2(i, 0.0f)です。座標変えながらです。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/204
207: 名前は開発中のものです。 [] 2023/11/25(土) 18:27:17.96 ID:FGDWLLI7 >>206 ああ、つまり配列には入れないけど、 プレハブオブジェクトの生成はしてるってことですね。 ありがとうございます。 相手してくださった皆さまもありがとうございました。 これからも勉強します。 http://mevius.5ch.net/test/read.cgi/gamedev/1699257023/207
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.031s