我对团结和游戏开发以及编码还很陌生,今天才开始,而我只是想让我的玩家加入WALK,但我遇到了我的第一个问题,但我一直收到此错误消息,但是我的代码没有任何错误的迹象(在我看来,这对您来说可能很明显),但是我真的需要帮助
我尝试了许多不同的方法来重做它。我正在关注角色移动教程,但这是从2018年开始使用的Visual Studio代码的不同版本。
public class PlayerMovement : MonoBehaviour {};
public CharacterController2D controller;
这是链接https://www.youtube.com/watch?v=dwcT-Dch0bA&t=341s,我是一个非常新的人,因此,如果您可以将链接发送到一个有用的2D游戏设计教程,那将非常棒。
答案 0 :(得分:6)
这应该消除您的错误
public class PlayerMovement : MonoBehaviour
{
public CharacterController2D controller;
}
错误消息非常简单。您不能直接拥有方法或在命名空间内声明变量
您可以,但是,在名称空间内有类 ,而这些类可以直接 包含诸如字段或方法之类的成员。例如,您有一个名为PlayerMovement
的类,并且正在继承MonoBehaviour
。
“什么是命名空间?” ,您问吗?
名称空间是类的位置 是cs文件中的第一个左括号。
这是一个易于理解的例子
namespace This.Is.My.Address
{
public class House
{
private Room LivingRoom {get; set;}
private Water Faucet()
{
//return Water or something
}
}
}
因此,在This.Is.My.Address命名空间中,有一所房子,而该房子中有一堆房子的东西。
您所做的就是这样(希望您能发现其中的区别):
namespace This.Is.My.Address
{
public class House
{
}
private Room LivingRoom {get; set;}
private Water Faucet()
{
//return Water() or something
}
}
您的起居室等在街上和其他所有地方。希望对您有所帮助。
答案 1 :(得分:2)
C#
是一种面向对象编程(OOP)类型的语言,顾名思义,它处理所谓的“对象”。通过使用“模板”创建对象,我们在OOP中称其为class
。
因此,定义类的方式如下:
public class MyClass
{
// Stuff goes inside here
}
这些类位于我们称为namespace
的内部,这有点像放置类的虚拟存储桶。并且这些名称空间允许包含类,但不允许出现错误提示的字段。
因此,这并不可行,因为该字段直接位于名称空间内:
namespace YourNamespace
{
public class PlayerMovement : MonoBehaviour {};
public CharacterController2D controller;
}
但是会这样,因为该字段在类内部:
namespace YourNamespace
{
public class PlayerMovement : MonoBehaviour
{
public CharacterController2D controller;
}
}
您似乎是编程的超级新手,所以我建议您不要以Unity(有点先进)开始。您可能应该从简单的编程教程开始,并在进入大型项目之前尝试理解基本的编程概念。