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

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

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

Q&A

解決済

1回答

1476閲覧

unity 固定座標に移動させる方法

akatukinonono

総合スコア9

0グッド

0クリップ

投稿2018/08/18 14:51

前提・実現したいこと

unity初心者です。
ロックマンエグゼのようなゲームを試しに作っています。
パネルに番号を振り、その番号を座標に変換する方法を探しているのですが、いい方法はないでしょうか?
(エリア内をランダムに動き回る敵の場合、乱数使って簡単に座標移動が行えそうだから)

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

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

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

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

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

guest

回答1

0

ベストアンサー

詳しい事はあまり書いてないので良く分かりませんが、9枚のパネル上を移動するアレですよね?
取り敢えずで良いなら

c#

1vector3[] maptails={new vector3(-1,1,0),new vector3(0,1,0),new vector3(1,1,0), 2 new vector3(-1,0,0),new vector3(0,0,0),new vector3(1,0,0), 3 new vector3(-1,-1,0),new vector3(0,-1,0),new vector3(1,-1,0);

とすれば
012
345
678
という風に座標を入れられるので、そこに対応したパネルを置き(座標は調整してください)
移動は

c#

1int playerpos=Array.Indexof(maptails,transform.position); 2if(GetkeyDown(Keycode.Downarrow)&&playerpos+3<10) 34 transform.position=maptails[playerpos+3]; 5 playerpos+=3; 67 8if(GetkeyDown(Keycode.Uparrow)&&playerpos-3<0) 910 transform.position=maptails[playerpos-3]; 11 playerpos-=3; 12 1314

playerpos=座標から取得したプレイヤーの配列内での位置
キー入力とplayerposが次の移動で配列外に出ないかをチェックした後、下入力ならplayerposに3を足した位置にプレイヤーを移動、playerposに3を加える
012↓ここならmaptails[2]からmaptails[5]へ
345
678
上移動なら移動の際にplayerposから-3を加える
左右移動もそれぞれ1,-1を加えれば出来ると思います。
自分も初心者なので間違ってたりunityじゃ使えない機能を使っていたらすいません。

投稿2018/08/19 05:40

編集2018/08/19 06:41
tekateka

総合スコア22

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

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

akatukinonono

2018/08/21 12:36

なるほど。 配列を使用すればよかったんですね。 ちょっと立て込んでて試してみる余裕はないですが、時間が作れたらやってみます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問