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

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

ただいまの
回答率

88.58%

Unity スクリプトに矛盾する行末があります の警告文

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 1,230

ssssggg

score 40

Unityについてです。
下記の警告が出ていてスクリプトが正常に動作しないのですがどうすればいいでしょうか。
原因はコードだと思われますが、どこが悪いのかがわかりません。


警告文

There are inconsistent line endings in the 'Assets/Attack.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.

日本語
'Assets / Attack.cs'スクリプトに矛盾する行末があります。 Mac OS X(UNIX)もあればWindowsもあります。
これにより、スタックトレースの不正な行番号やコンパイラエラーが発生する可能性があります。多くのテキストエディタは、行末変換メニューコマンドを使用してこれを修正できます。


動かないスクリプト

ゲームのアイコンのオブジェクトにアタッチされています。
表示非表示を切り替えたり、クリックされた動作をBattleManagerに送る役割をしています。

開始時に、Debug.Log"AA""dd"が2回ずつ出ます。なのでスクリプトは動いてます。でもAAが二回出るはずがないのでおかしいです。


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

public class Attack : MonoBehaviour
{
GameObject BattleManagger;
BattleManager sc;

int BNsyori = 0;//scから変数の変化によって処理をするのを重複させない役割

void Start()
{
Debug.Log("AA");
BattleManagger = GameObject.Find("BattleManagger");
sc = BattleManagger.GetComponent<BattleManager>();
}

// Update is called once per frame
void Update()
{
int BsyoriA = sc.BsyoriA;
int BsyoriB = sc.BsyoriB;
int Inputo = sc.Inputo;

if (BsyoriA == 1 && BNsyori == 0)
{
BNsyori = 1;
StartCoroutine("hyouzi");
}

if (Inputo == 1 && BNsyori == 1)
{
BNsyori = 2;
StartCoroutine("hihyouzi");

}

}

public IEnumerator hihyouzi()
{
Debug.Log("dd");
transform.position = new Vector2(-6, -4);
for (float f = 0; f < 16; f++)
{

transform.Translate(new Vector2(0, -0.125f));

yield return new WaitForSeconds(0.02f);

}

}

public IEnumerator hyouzi()
{
Debug.Log("dd");
transform.position = new Vector2(-6f, -6);
for (float f = 0; f < 16; f++)
{

transform.Translate(new Vector2(0, 0.125f));
yield return new WaitForSeconds(0.02f);

}
BNsyori = 0;
}

void OnMouseOver()
{

if (Input.GetMouseButtonDown(0) && BNsyori == 0)
{
BNsyori = 1;
sc.Attack();
}
}
}


ちなみに、同じような動作をするオブジェクトがもう一つあって、それのスクリプト(下記)は正常に動きます。


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

public class bunseki : MonoBehaviour
{
GameObject BattleManagger;
BattleManager script;

int BNsyori = 0;

void Start()
{
BattleManagger = GameObject.Find("BattleManagger");
script = BattleManagger.GetComponent<BattleManager>();

}

// Update is called once per frame
void Update()
{
int BsyoriA = script.BsyoriA;
int BsyoriB = script.BsyoriB;
int Inputo = script.Inputo;
if (BsyoriA == 1 && BNsyori == 0)
{
BNsyori = 1;
script.BsyoriAsyori();
StartCoroutine("hyouzi");
}

if (Inputo == 1 && BNsyori == 1)
{
BNsyori = 2;
StartCoroutine("hihyouzi");

}

}

public IEnumerator hihyouzi()
{
transform.position = new Vector2(1.3f, -4);
for (float f = 0; f < 16; f++)
{

transform.Translate(new Vector2(0, -0.125f));

yield return new WaitForSeconds(0.02f); 

}

}

public IEnumerator hyouzi()
{
transform.position = new Vector2(1.3f, -6);
for (float f = 0; f < 16; f++)
{

transform.Translate(new Vector2(0, 0.125f));
yield return new WaitForSeconds(0.02f);

}
BNsyori = 0;
}

void OnMouseOver()
{

if (Input.GetMouseButtonDown(0) && BNsyori == 0)
{
BNsyori = 1;
script.Bunseki();
}

}

}


BattleManager (必要そうな部分だけ)


public class BattleManager : MonoBehaviour
{
public int Z = 0;
public int flee = 0;//自由に使って良い変数
public Text messagewindow;
public static int PlayerLV;
public int BsyoriA;
public int BsyoriB;
public int m_syori = 0;
//略

public void BsyoriAsyori()
{
BsyoriA += 1;
}

public void Bunseki()
{
MsgB = 1;
Inputo = 1;
StartCoroutine("Bunsekii");
}

public void Attack()
{
MsgB = 1;
Inputo = 1;
StartCoroutine("Attackk");
}

public void MsgBa()
{
MsgB = 1;
}


説明やコードが理解しがたかったらすみません。抽象的な事でもいいので、警告文やスクリプトが動かない理由として考えられること、手がかりがあれば教えていただけると嬉しいです。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

checkベストアンサー

+1

「There are inconsistent line endings in the 'Assets/Attack.cs' script. Some are Mac OS X (UNIX) and some are Windows.」
[訳] 'Assets/Attack.cs'の記述で、整合性のない行末(各行の最後についている"改行"の文字コード)が含まれています。一部はMac OS X (UNIX)のもの(LF(文字コード 0x0A)の1文字で改行されている)、一部はWindowsのもの(CR(文字コード(0x0D)とLF(文字コード(0x0A)の2文字で改行されている))になっている。

という事なので、改行のコードを変更する機能を持ったエディタ(WindowsだとSakura Editorとか、Notepad++とか)で'Assets/Attack.cs'というファイルを開き、改行のコードを変更して上書き保存すると警告が出なくなると思います。

==
ちなみに、昔のMacは改行のコードが、CRの1文字でした。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/04/04 13:54

    回答ありがとうございます。やってみようと思います。しかし今後こうならないためにはどうすれば良いのでしょうか?

    キャンセル

  • 2019/04/04 14:20

    質問のような奇妙なファイルは見たことがないのですが、UNIX改行形式のファイルとWindows改行形式のファイルの間でコピー&ペーストすると改行のコードが混ざったファイルになるかもしれませんね。
    稀な例だと思いますから、改行形式を統一する方法を覚えておきさえすれば問題ないのではないでしょうか。

    キャンセル

  • 2019/04/04 15:59

    ありがとうございました。稀な例だったんですね。何度スクリプトをチェックしても治らなくて困っていたので質問して正解でした。

    キャンセル

+1

There are inconsistent line endings in the 'Assets/Attack.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.

改行コードが「CR+LF」と「LF」の 2 種類が混在しているという警告です。
一度スクリプトファイルを削除して、作り直せば直ると思います。

開始時に、Debug.Log"AA""dd"が2回ずつ出ます。なのでスクリプトは動いてます。でもAAが二回出るはずがないのでおかしいです。

上記の警告と関連しているか分からないので、修正後にもう一度確認してみてください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 88.58%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る