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

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

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

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

Unity

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

Q&A

解決済

2回答

1909閲覧

オブジェクトを横にランダムに出したい

退会済みユーザー

退会済みユーザー

総合スコア0

C#

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

Unity

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

0グッド

0クリップ

投稿2018/07/14 06:43

オブジェクトを縦にランダムに出すコードは検索でたくさん出てくるのですが、横にランダムに出すコードは数が少なく、縦にランダムに出すコードを少しいじってみたいと思います。
しかし、うまくいきません。
スクリプトはmovingObjというからのオブジェクトにアタッチしています。

c#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class CacaoController : MonoBehaviour { 6 public GameObject CacaoPrefab; 7 public GameObject movingObj; 8 Rigidbody2D rb; 9 10 void Start (){ 11 StartCoroutine (MoveMap ()); 12 StartCoroutine (SetCacao ()); 13 rb = GetComponent<Rigidbody2D>(); 14 } 15 16 void Update () { 17 } 18 19 IEnumerator SetCacao (){ 20 while (true) { 21 Vector3 pos = new Vector3 (0f, Random.Range(3.5f, -3.5f), 0); 22 GameObject tree = Instantiate (CacaoPrefab, pos, transform.rotation) as GameObject; 23 tree.transform.parent = movingObj.transform; 24 yield return new WaitForSeconds (1.5f); 25 } 26 } 27 28 IEnumerator MoveMap (){ 29 while (true) { 30 Vector3 pos = movingObj.transform.position; 31 pos.y -= -3 * Time.deltaTime; 32 movingObj.transform.position = pos; 33 yield return 0; 34 } 35 } 36}

↓ここの部分を変えたら横にランダムに出すことができると思うのですが、いまいち分かりません。
ご教授願います。

c#

1IEnumerator SetCacao (){ 2 while (true) { 3 Vector3 pos = new Vector3 (0f, Random.Range(3.5f, -3.5f), 0); 4 GameObject tree = Instantiate (CacaoPrefab, pos, transform.rotation) as GameObject; 5 tree.transform.parent = movingObj.transform; 6 yield return new WaitForSeconds (1.5f); 7 } 8 } 9 10 IEnumerator MoveMap (){ 11 while (true) { 12 Vector3 pos = movingObj.transform.position; 13 pos.y -= -3 * Time.deltaTime; 14 movingObj.transform.position = pos; 15 yield return 0; 16 } 17 }

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

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

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

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

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

guest

回答2

0

ここで座標を決めるときにY軸をランダムにしているのでX軸と値を入れ替えれば横にランダムで出現するようになると思います。

C#

1// SetCacao内の処理 2Vector3 pos = new Vector3 (0f, Random.Range(3.5f, -3.5f), 0); 34Vector3 pos = new Vector3 (Random.Range(3.5f, -3.5f), 0.0f, 0.0f);

移動方向はこっちのMoveMap内の処理なので移動させる値をyからxに変えれば横に移動すると思います。

C#

1// MoveMap内の処理 2pos.y -= -3 * Time.deltaTime; 34pos.x -= -3 * Time.deltaTime;

投稿2018/07/14 07:05

m_hikari

総合スコア64

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

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

退会済みユーザー

退会済みユーザー

2018/07/14 07:22

無事横にランダムにオブジェクトを出すことができました。 ありがとうございます! しかし、時間差で他の方が回答していましたのでベストアンサーは先に回答をしてくれた方にしました。 複数人にベストアンサーを送れたらいいのですが...すみません。
guest

0

ベストアンサー

Vector3 pos = new Vector3 (0f, Random.Range(3.5f, -3.5f), 0);Vector3 pos = new Vector3 (Random.Range(3.5f, -3.5f), 0f, 0);にすればよいはずです。
要するに、y軸(縦)に並べているのをx軸(横)にするだけですね。

投稿2018/07/14 06:54

fiveHundred

総合スコア9797

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

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

退会済みユーザー

退会済みユーザー

2018/07/14 07:18

無事横にランダムにオブジェクトを出すことができました。 ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問