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

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

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

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

Unity

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

1799閲覧

2次元配列に正しい現在位置を格納したい

Rpt297

総合スコア8

C#

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

Unity

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2020/06/04 02:30

いつもお世話になっております。
落ちモノパズルを作成しています。
二次元配列に現在のオブジェクトの座標を格納したいのですが、位置が正しく格納されません。

例えば、Jミノが以下のように格納されます。
イメージ説明

原因は以下のプログラムの
squares[(int)mino_V2.y, (int)mino_V2.x] = mino_Pos; の(int)でした。
上記の画像の例だとsquaresに格納する際、(2,1)が(1,1)に変換されてしまいます。
squares[mino_V2] と書ければいいのですが、文法?的に間違いなので書けません。
どうすれば値を変換されずに格納できるのでしょうか。ご助力頂ければ幸いです。

C#

1 2 void Squares_Save() //ミノの位置を2次元配列に格納する 3 { 4 foreach(Transform mino_Pos in transform) 5 { 6 Vector2 mino_V2 = mino_Pos.position; //Vector2に変換 7 squares[(int)mino_V2.y, (int)mino_V2.x] = mino_Pos; //位置をsquaresに格納する 8 } 9 } 10

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

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

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

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

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

BluOxy

2020/06/04 02:40 編集

画像の「こうなってほしい」は、どういう経緯でそのように変化したのかが分かりませんでした。 1,1が2,1に移動したということでしょうか。 どういう条件を満たす配列の要素が、どの配列の位置に移動するのかを記載してください。 【例】(y,1)に位置する全ての配列の要素が(y+1,1)へ移動する
sakura_hana

2020/06/04 02:47

mino_V2の値を確認してみてください。(Debug.Logだと表示が正確ではない可能性があるのでインスペクターでの目視等推奨) 「1.998」みたいな値の場合でもintへの変換時は小数点以下切り落としなので「1」になります。
guest

回答1

0

自己解決

int mino_V2_Y = Mathf.CeilToInt(mino_Pos.transform.position.y);
int mino_V2_X = Mathf.CeilToInt(mino_Pos.transform.position.x);
のように切り上げ処理をしたら思い通りに行きました。
ご尽力いただきありがとうございました。

投稿2020/06/04 03:24

Rpt297

総合スコア8

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問