[英]How do I fix "All compiler errors have to be fixed before you can enter playmode!" error in Unity
我是一名新程序員,我一直在嘗試統一制作一個簡單的視頻游戲,但是到目前為止我無法測試我的進度,因為我無法在 Unity 中進入游戲模式......我收到消息“所有編譯器必須先修復錯誤才能進入播放模式”,然后我 go 來檢查錯誤:它們是以下 5 個:
錯誤 CS1519:class、記錄、結構或接口成員聲明中的令牌“{”無效
錯誤 CS1519:class、記錄、結構或接口成員聲明中的令牌“(”無效
錯誤 CS8124:元組必須包含至少兩個元素。
錯誤 CS1519:無效令牌“;” 在 class 中,記錄、結構或接口成員聲明
錯誤 CS1022:類型或命名空間定義,或預期文件結尾
這是代碼:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
public class InputManager : MonoBehaviour
{
private PlayerInput playerInput;
private PlayerInput.OnFootActions onFoot;
private PlayerMotor motor;
// Start is called before the first frame update
void Awake()
{
playerInput = new PlayerInput();
onFoot = playerInput.OnFoot;
motor = GetComponent<PlayerMotor>();
onFoot.Jump.performed += ctx => motor.Jump();
}
// Update is called once per frame
void FixedUpdate()
{
//tell the playermotor to move using the value from our movement action.
motor.ProcessMove(onFoot.Movement.ReadValue<Vector2>());
}
private void OnEnable()
{
onFoot.Enable();
}
private void OnDisable();
{
onFoot.Disable();
}
}
誰能告訴我這些錯誤的含義以及我該如何解決它們?
先感謝您: :)
如果您偶然發現錯誤消息並且不理解它們的描述,請嘗試在互聯網上查找它們的代碼。 例如https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/compiler-messages/cs1519可以為您提供有關第一個錯誤的一些見解。 其他東西也是如此。
關於錯誤 CS1519: invalid token '{' in class, record, struct or interface member declaration您可以在文檔中閱讀:
每當在不屬於它的位置遇到令牌時,都會生成此錯誤。 令牌是關鍵字; 標識符(class、結構、方法等的名稱); 字符串、字符或數字文字值,例如 108、“Hello”或“A”; 或運算符或標點符號,例如 == 或;。
在您的情況下,令牌是;
它不屬於這里: private void OnDisable();
這個分號是問題所在,因為它使您的方法沒有主體(當它應該有一個時),以及您的方法調用onFoot.Disable();
現在被視為僅在 class 內部制作,而不是方法,這是無效的。
通常,此錯誤通常表示各種類型的拼寫錯誤。
錯誤 CS1022:類型或命名空間定義,或預期的文件結尾只是前面提到的分號的結果,它會在文件中進一步傳播。
至於錯誤 CS8124:元組必須包含至少兩個元素。 我在粘貼到我的項目的代碼中看不到這個錯誤,也許這是你沒有粘貼到這里的另一個文件中的錯誤。 但是該消息清楚地表明了原因:您正在使用一個包含少於 2 個元素的元組。 或者,它可能是另一個錯字,使編譯器認為您正在使用元組。
建議:
(如果我錯了,請糾正我)你從某個地方復制了代碼並試圖讓它在你的游戲中工作,對嗎?
因此,對於命名空間錯誤,這可能是因為您沒有從 package 管理器統一導入新的 inputSystem package,據我了解,您的代碼其他錯誤不屬於此腳本,因此您的項目中可能還有其他一些腳本編譯時導致這些錯誤...
因此,除非您的腳本正確編譯(沒有任何問題/錯誤),否則基本上無法解決該錯誤(或者換句話說,您無法進入播放模式),因此您可以通過某種方式檢查哪個腳本正在通過該錯誤和在哪一行,所以你只需要 go 到你的統一編輯器控制台(windows 的快捷方式:Ctrl + Shift + C 導致問題)並雙擊錯誤
你的錯誤意味着:
第一個錯誤意味着您的腳本中有一個額外或更少的“{”花括號。
第二個錯誤意味着您的腳本中有一個額外或更少的 '(' 括號(也稱為小括號)。
因此,您可能錯誤地在代碼中插入了這些括號,或者您在代碼中刪除了括號的一側,這也可能是發生這些錯誤的原因。 (解決方案:檢查您的腳本並放置或刪除缺少的括號或是否有額外的括號)
第三個錯誤意味着您有一個“元組”數據類型變量,但其中不包含最少數量的元素。
所以基本上元組是一種數據類型,它在一個變量中存儲多種類型的變量(讓你更容易理解),所以正如我在檢查並雙擊該錯誤之前告訴你的那樣,它會引導你到導致的行錯誤並嘗試修復它。
第 4 個錯誤意味着(再次與括號相同)您額外或更少的 ';' 腳本中的分號。
第 5 個錯誤意味着您缺少對命名空間的引用,在您的情況下(如果我沒記錯的話)是因為您沒有導入輸入系統的庫 / package 所以......
無論如何,希望你能從中理解一些新的東西,如果我把它弄得如此混亂,我很抱歉......
希望它有所幫助......快樂的編碼:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.