昨天打完程式碼後,出現下面的Bug:

Assets/LineRendererSetting.cs(5,22): error CS1514: { expected
Assets/LineRendererSetting.cs(5,22): error CS1513: } expected
Assets/LineRendererSetting.cs(5,22): error CS1022: Type or namespace definition, or end-of-file expected
Assets/LineRendererSetting.cs(5,23): error CS0116: A namespace cannot directly contain members such as fields or methods
Assets/LineRendererSetting.cs(5,32): error CS1022: Type or namespace definition, or end-of-file expected
Assets/LineRendererSetting.cs(5,33): error CS0116: A namespace cannot directly contain members such as fields or methods
Assets/LineRendererSetting.cs(5,50): error CS1022: Type or namespace definition, or end-of-file expected
Assets/LineRendererSetting.cs(5,52): error CS0116: A namespace cannot directly contain members such as fields or methods
Assets/LineRendererSetting.cs(6,1): error CS1022: Type or namespace definition, or end-of-file expected
Assets/LineRendererSetting.cs(32,1): error CS1022: Type or namespace definition, or end-of-file expected

沒get到是什麼意思,找了好久,才發現說原來是因為Unity創建c# script時,會直接把class名稱跟檔案名同名,但我一開始建立時有寫錯檔案名,後來才改檔名的,但是class的名稱還是保持舊的名字,所以就發生以上錯誤。

public class 與C# script檔名相同 : MonoBehaviour
好像跟class名無關,不過我找到另外的錯誤了,應該是要像這樣宣告:

//LineRendererSettings.cs
public class NewBehaviourScript : MonoBehaviour
    public LayerMask layerMask;
    public void AlignLineRenderer(LineRenderer rend)

我一開始宣告成這樣:

//LineRendererSettings.cs
public class NewBehaviourScript : MonoBehaviour