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

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

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

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

Unity

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

Q&A

3回答

2369閲覧

Unityで発生しているエラーについて

RRR7

総合スコア0

C#

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

Unity

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

0グッド

0クリップ

投稿2022/03/04 22:24

現在起こっている問題
https://riku-lab.com/reversi4
現在上記のサイトを参考にUnityでリバーシを作成しているのですが、エラーで進めません。
このエラーが何を指すのか、どうすれば解決できるのかどなたか教えていただけると幸いです。

発生しているエラーコード

Assets\Scripts\GaneController.cs(113,27): error CS1503: Argument 1: cannot convert from 'string[]' to 'string

該当するソースコード

C#

1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class GaneController : MonoBehaviour 7{ 8 // enumを使って数字に名前をつける 9 enum COLOR 10 { 11 EMPTY, //空欄 = 0 12 BLACK, //黒色 = 1 13 WHITE //白色 = 2 14 } 15 16 const int WIDTH = 8; 17 const int HEIGHT = 8; 18 19 // 黒い駒 20 [SerializeField] 21 GameObject blackObject; //blackObjectという名前のGameObject型変数を宣言 22 //白い駒 23 [SerializeField] 24 GameObject whiteObject; //whiteObjectという名前のGameObject型変数を宣言 25 //盤 26 [SerializeField] 27 GameObject emptyObject; //emptyObjectという名前のGameObject型変数を宣言 28 29 //盤面のGameObject 30 [SerializeField] 31 GameObject boardDisplay = null; 32 33 //盤面 34 COLOR[,] board = new COLOR[WIDTH, HEIGHT]; // 8x8の2次元配列 35 36 COLOR player = COLOR.BLACK; 37 38 // Start is called before the first frame update 39 void Start() 40 { 41 Initialize(); //盤面の初期値を設定 42 ShowBoard(); //盤面を表示 43 } 44 45 //盤面の初期値を設定 46 void Initialize() 47 { 48 board[3, 3] = COLOR.WHITE; 49 board[3, 4] = COLOR.BLACK; 50 board[4, 3] = COLOR.BLACK; 51 board[4, 4] = COLOR.WHITE; 52 } 53 54 //盤面を表示する 55 void ShowBoard() 56 { 57 //boardDisplayの全ての子オブジェクトを削除 58 foreach (Transform child in boardDisplay.transform) 59 { 60 Destroy(child.gameObject); //削除 61 } 62 63 for (int v = 0; v < HEIGHT; v++) 64 { 65 for (int h = 0; h < WIDTH; h++) 66 { 67 // boardの色に合わせて適切なPrefabを取得 68 GameObject piece = GetPrefab(board[h, v]); 69 70 if (board[h, v] == COLOR.EMPTY) 71 { 72 //座標を一時的に保持 73 int x = h; 74 int y = v; 75 76 //pieceにイベントを設定 77 piece.GetComponent<Button>().onClick.AddListener(() => { PutStone(x + "," + y); }); 78 } 79 80 //取得したPrefabをboardDisplayの子オブジェクトにする 81 piece.transform.SetParent(boardDisplay.transform); 82 } 83 } 84 } 85 86 //色によって適切なprefabを取得して返す 87 GameObject GetPrefab(COLOR color) 88 { 89 GameObject prefab; 90 switch (color) 91 { 92 case COLOR.EMPTY: //空欄の時 93 prefab = Instantiate(emptyObject); 94 break; 95 case COLOR.BLACK: //黒の時 96 prefab = Instantiate(blackObject); 97 break; 98 case COLOR.WHITE: //白の時 99 prefab = Instantiate(whiteObject); 100 break; 101 default: //それ以外の時(ここに入ることは想定していない) 102 prefab = null; 103 break; 104 } 105 return prefab; //取得したPrefabを返す 106 } 107 108 //駒を置く 109 public void PutStone(string position) 110 { 111 //positionをカンマで分ける 112 int h = int.Parse(position.Split(',')[0]); 113 int v = int.Parse(position.Split(',')); 114 //ひっくり返す 115 ReverseAll(h, v); 116 //画面を表示 117 ShowBoard(); 118 119 //ひっくり返していれば相手の番、駒の色を変更する 120 if (board[h, v] == player) 121 { 122 //駒の色を変更 123 player = player == COLOR.BLACK ? COLOR.WHITE : COLOR.BLACK; 124 } 125 //Debug.Log(position); //コンソールに座標を表示 126 } 127 128 //1方向にひっくり返す 129 void Reverse(int h, int v, int directionH, int directionV) 130 { 131 //確認する座標x, yを宣言 132 int x = h + directionH, y = v + directionV; 133 134 //挟んでいるか確認してひっくり返す 135 while (x < WIDTH && x >= 0 && y < HEIGHT && y >= 0) 136 { 137 //自分の駒だった場合 138 if (board[x, y] == player) 139 { 140 //ひっくり返す 141 int x2 = h + directionH, y2 = v + directionV; 142 int count = 0; //カウント用の変数 143 while (!(x2 == x && y2 == y)) 144 { 145 board[x2, y2] = player; 146 x2 += directionH; 147 y2 += directionV; 148 count++; 149 } 150 //1つ以上ひっくり返した場合 151 if (count > 0) 152 { 153 //駒を置く 154 board[h, v] = player; 155 } 156 break; 157 } 158 //空欄だった場合 159 else if (board[x, y] == COLOR.EMPTY) 160 { 161 //挟んでいないので処理を終える 162 break; 163 } 164 //確認座標を次に進める 165 x += directionH; 166 y += directionV; 167 } 168 } 169 170 //全方向にひっくり返す 171 void ReverseAll(int h, int v) 172 { 173 Reverse(h, v, 1, 0); //右方向 174 Reverse(h, v, -1, 0); //左方向 175 Reverse(h, v, 0, -1); //上方向 176 Reverse(h, v, 0, 1); //下方向 177 Reverse(h, v, 1, -1); //右上方向 178 Reverse(h, v, -1, -1);//左上方向 179 Reverse(h, v, 1, 1); //右下方向 180 Reverse(h, v, -1, 1); //左下方向 181 } 182}

補足
Unityのバージョンは Unity 2020.2.5f1 です。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2022/03/05 00:17

どの行でエラーが出てるのかぐらい書こう。
guest

回答3

0

っていうか、別に行番号も正しいソースも何もなくても
「Assets\Scripts\GaneController.cs(113,27)
: error CS1503: Argument 1: cannot convert from 'string[]' to 'string'」

エラーメッセージ読む気があるなら、「GageController.cs(113,27)」見たら
ソースの113行目とか27行目がなんか怪しいのかな?とか、ちょっと気になったりしませんか?

「Argument 1: cannot convert from 'string[]' to 'string'」を翻訳したら
「引数1: 'string []'から 'string'に変換できません 」って満点回答してくれますよ?

「何かメソッドの第1引数が間違ってるっぽい
GageController.csの113行目か27行目かその辺かもしれん」
ってなりません?

投稿2022/03/09 12:11

YPYP

総合スコア8

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

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

0

csharp

1int h = int.Parse(position.Split(',')[0]); // 113行目 2int v = int.Parse(position.Split(','));

ここでエラーが出てます。postition が "1, 2" みたいな文字列だとしたら、 int.Parse(position.Split(',')); → int.Parse(position.Split(','))[1]; と書けばよいでしょう。

しかし、エラーは 113 行目に問題があることを示していますが、実際のエラーはコピペされていたコードの 113 行目ではありません。今回はたまたま何が悪いかわかりましたが、エラーが指し示す行が正しくない場合は他の人には何が悪いのかわからない、あるいは間違った回答が返ってくると思ってください。他の方からも指摘があったように、質問には「コードのどの行がエラーになっているのか」を他の人にもわかるように書いてください。

投稿2022/03/05 02:08

bboydaisuke

総合スコア5275

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

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

0

Assets\Scripts\GaneController.cs(113,27): error CS1503: Argument 1: cannot convert from 'string[]' to 'string

string[] はstring には変換できない、とおっしゃってます
エラーの出てる行数まで出してくれてるんですから、そこんところの変数のナカミを片っ端からチェックしてみましょう

投稿2022/03/04 23:27

y_waiwai

総合スコア87774

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問