1. ホーム
  2. スクリプト・コラム
  3. その他

[解決済み】「名前空間はフィールドやメソッドなどのメンバーを直接含むことはできない」 [閉店]のお知らせ]

2022-01-11 14:06:11

質問

Reflexilを使用したNET.reflectorのコードは以下の通りです。

if(Input.GetKeyDown(KeyCode.Keypad5)) { 
int i = 0; 
Character localPlayer = PlayerClient.GetLocalPlayer().controllable.GetComponent<Character>(); 
foreach (UnityEngine.Object obj2 in UnityEngine.Object.FindObjectsOfType(typeof(LootableObject))) 
{ 
    if (obj2 != null) 
    { 
        i++; 
        LootableObject loot = (LootableObject) obj2; 
        Debug.Log("Loot "+i+": "+loot.transform.position.ToString()); 
        CCMotor ccmotor = localPlayer.ccmotor; 
        if(ccmotor != null && tpPos1 != Vector3.zero) { 
            ccmotor.Teleport(loot.transform.position); 
            Notice.Popup("", "Teleported to "+loot.name, 1.5f); 
        } 
        break; 
    } 
} 

}

コンパイルすると、エラーが発生します。

Line: 1 Column: 1 Error Number: CS0116  Error Message: "A namespace does not directly contain members such as fields or methods"

これはUnityのコードだと思います。私はそれほど経験があるわけではありません。 

解決方法は?

表示されているスニペットは、直接エラーの原因になっていないようです。

このように、エラーをCAUSEすることができます。

namespace MyNameSpace
{
   int i; <-- THIS NEEDS TO BE INSIDE THE CLASS

   class MyClass
   {
      ...
   }
}

クラスの外側にあるものがすぐにわからない場合は、閉じ括弧の位置がずれているか、余分なものがあることが原因である可能性があります。 } .