Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Unity 3D中的单行为是什么?_C#_Unity3d - Fatal编程技术网

C# Unity 3D中的单行为是什么?

C# Unity 3D中的单行为是什么?,c#,unity3d,C#,Unity3d,完整的代码在这里 monobhaviormonobhavior的目的是什么是另一个继承自变量和函数的类。这允许继承者使用其他类的方法和变量,前提是它们具有正确的访问级别修饰符集 在下面的示例中,Class1继承自Base,因此可以使用protected方法Method1 using UnityEngine; using System.Collections; public class VariablesAndFunctions : MonoBehaviour { int myIn

完整的代码在这里


monobhavior
monobhavior
的目的是什么是另一个继承自
变量和函数的类。这允许继承者使用其他类的方法和变量,前提是它们具有正确的访问级别修饰符集

在下面的示例中,
Class1
继承自
Base
,因此可以使用
protected
方法
Method1

using UnityEngine;
using System.Collections;

public class VariablesAndFunctions : MonoBehaviour
{   
    int myInt = 5;
}
注意:在这个特定示例中,最好将
Method1
标记为
abstract
virtual
,这样
Class1
就可以像这样覆盖它:

public class Base
{
    protected void Method1 { /*...*/ }
}

public class Class1 : Base
{
    public void Method2 { Method1(); }
}
特别是,尽管被描述为:


MonoBehavior是每个Unity脚本派生的基类


因此,在unity中编写脚本时,您可以使用此基类更好地控制如何访问内容,这样您就不需要自己编写了。

MonoBehavior是每个unity脚本的派生基类。它提供了一些生命周期功能,便于您开发应用程序和游戏。 一幅画抵得上千言万语

图像来源:


虽然下面的陈述是正确的

  • “MonoBehavior是每个Unity脚本派生的基类”-
老实说,我觉得这可能会误导初学者。“每一个统一剧本”是罪魁祸首


它给初学者一个概念,即在unity中创建的所有脚本都必须扩展MonoBehavior。事实并非如此。您可以创建包含扩展c#基本对象类的类的脚本。在这样做时,您的脚本将被归类为非Unity脚本,但没有任何东西阻止它与其他Unity脚本交互,反之亦然。

它是一个提供诸如Start()、Update()等entrymethods的类,因此您不必担心这些事情。明白了吗。谢谢:)你应该读一些C#basics。在求助之前,你真的应该试试搜索引擎。Google“什么是unity3d MonoBehavior”-第一个热门话题是解释它的官方文档。@Shafiksaon它的意思是
MonoBehavior
是一个基类,
VariablesAndFunctions
是一个继承自它的类,只是为了增加它,它还允许在编辑器中将其视为组件,以便您可以将其拖动到inspector中。这是一个有效且有趣的观点,但对我来说,最初的问题(当然也太模糊了)更多的是关于超类声明最初的实际含义。否则,我猜他们会问关于
monobhavior
类是什么和做什么的。您的回答开启了一个不同的讨论:一个关于体系结构的讨论。感谢您澄清这一点——我的想法正是这样的:MonoBehavior是c#版本的“所有Java类都源自对象”
protected override Method1()
{
    //...

    base.Method1(); //Call the implementation of Method1 in Base here

    //...
}