🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

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

Q&A

解決済

2回答

4591閲覧

UnityのC#スクリプトの謎のエラーの原因を教えてほしいです。

rodoki

総合スコア0

C#

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

0グッド

0クリップ

投稿2020/12/13 04:26

自分はUnity初心者です、Wolfrpgエディターで数年ゲーム制作をしていましたが、
他のゲームエンジンも使ってみたいと思いUnityを使い始めました。
そこで自分は2Dで主人公を見下ろした視点でのゲームを作ろうと思い
まずは左キ―を押したら主人公が左に、右キーを押したら
主人公が右に移動するスクリプトを
色んなサイトである程度勉強し書いたですが、
書いたスクリプトを主人公のオブジェクトと紐づけたまではいいのですが、
いざテストプレイをしようとしたら警告・エラーメッセージが出ました。

発生している問題・エラーメッセージ

1.There are inconsistent line endings in the 'Assets/Scripts/主人公.cs' script. Some are Mac OS X (UNIX) and some are Windows. This might lead to incorrect line numbers in stacktraces and compiler errors. Many text editors can fix this using Convert Line Endings menu commands. 2.Assets\Scripts\��l��.cs(24,6): error CS1513: } expected 3.All compiler errors have to be fixed before you can enter playmode! UnityEditor.SceneView:ShowCompileErrorNotification()

該当のソースコード

使用している言語名 C#
...
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class 主人公 : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{

} // Update is called once per frame void Update() { if (Input.GetKey(KeyCode.LeftArrow)) { Debug.Log(左); } else if (KeyCode.Light) { Debug.Log(右); } }
### 試したこと この警告・エラーメッセージの意味を調べたところ、 「コンパイルエラーが発生しているのでそれらを全て修正してください、 24行目の6番目の文字がエラーの原因になっているのでそこを修正してください」 という意味だとわかったのですが肝心の24行目の6番目の文字は}なため 何故それが原因になっているのかがわかりません、文字の位置を色々変えて デバッグするもやはり「}がエラーの原因です」としか出ず 困惑しています、このエラーの原因は一体何なのでしょうか? ### 補足情報(FW/ツールのバージョンなど) 使っているパソコンはWindows10、使っているC#のソフトはvisual studio2019です。

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

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

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

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

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

guest

回答2

0

1.There are inconsistent line endings in the 'Assets/Scripts/主人公.cs' script. Some are Mac OS X (UNIX) and some are Windows.
This might lead to incorrect line numbers in stacktraces and compiler errors. Many text editors can fix this using Convert Line Endings menu commands.

改行コードが混在しているというエラーです。
テキストエディタなどを使って、どちらかで統一するように変換してください。
(警告なのでスルーしても動作はしますが)

2.Assets\Scripts\��l��.cs(24,6): error CS1513: } expected

最後の}が1つ足りません。

また、ファイル名に日本語などの全角文字を使用しないでください。
今回のように文字化けしますし、場合によっては動作がおかしくなったり動作しなくなったりします。

投稿2020/12/13 04:37

編集2020/12/13 05:00
fiveHundred

総合スコア10152

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

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

rodoki

2020/12/13 05:58

全角文字の使用を避け、そして最後に}を一つ追加すると 上記のエラーメッセージはなくなりましたが、今度は 「Assets\Scripts\Player.cs(21,18): error CS0029: Cannot implicitly convert type 'UnityEngine.KeyCode' to 'bool'」というエラーメッセージがでました、 keyCodeの値がboolに変換できないようなのですが、どうすればいいのでしょうか? ↓修正したコード using System.Collections; using System.Collections.Generic; using UnityEngine; public class Player : MonoBehaviour { // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { if (Input.GetKey(KeyCode.LeftArrow)) { Debug.Log("1"); } else if (KeyCode.RightArrow) { Debug.Log("2"); } } }
guest

0

自己解決

下記のようなコードにしたらboolに変換できないエラーを含めた一切のエラーが出なくなりました。
問題解決のためにアドバイスしてくれた方々、ありがとうございました。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{

} // Update is called once per frame void Update() { if (Input.GetKey(KeyCode.LeftArrow)) { Debug.Log("左矢印"); } else if (Input.GetKey(KeyCode.RightArrow)) { Debug.Log("右矢印"); } }

}

投稿2020/12/13 06:49

rodoki

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問