【问题标题】:Unity problems with classes C#C# 类的统一问题
【发布时间】:2014-03-23 06:50:11
【问题描述】:

我已经开始学习 Unity 并且已经学习了用于 Web 开发的 JavaScript,所以我确实有一些编程经验。

在统一编程时,我遇到了一些我不太了解的涉及类的事情。

1) 当我编写代码作为一个统一对象的组件时,我将它写在如下所示的公共类中。 (名称 Mover 只是一个示例。)但是我从不创建此类的实例,那么它是如何工作的呢?我所看到的只是正在创建的类。

using UnityEngine;
using System.Collections;

public class Mover : MonoBehaviour {

}

2) 上面的代码中还显示了 MonoBehaviour。我读了api,它说它是一个基类。我从未在 JavaScript 中遇到过这种情况。这是什么意思,对类 Mover 有什么影响?

【问题讨论】:

  • 您可以轻松地在网上搜索“什么是基类”。
  • 我试过了,但我得到了一堆我不完全理解的定义。从我得到的基类只是一个什么都不继承的类,其他类继承它的属性。对吗?
  • 将 Mover.cs 文件拖放到您的游戏对象中。这相当于创建此类的一个实例并将其附加到 GameObject。

标签: c# class unity3d


【解决方案1】:

试试这个。

在 Unity 中转到您的项目,创建一个 c# 脚本,将其命名为您想要的任何名称。在您的场景中创建一个立方体。将此脚本拖放到对象上。打开脚本,您应该会看到一个启动方法和一个更新方法。

类型 Debug.Log("Start");在 void Start() 函数中,与 void Update() 方法相同,但将字符串更改为任何内容。单击统一播放并观看控制台。

您应该会看到控制台打印的内容。

任何属于 Monobehaviour 的孩子都可以让你做很多我不打算在这里讨论的事情。

https://docs.unity3d.com/Documentation/ScriptReference/

在顶部,您可以选择语言。习惯那个页面。 =D

希望这能带你到某个地方!

【讨论】:

    【解决方案2】:

    对于第一个问题,您可以将脚本附加到场景中的游戏对象上以使用它。

    例如,

    public class Mover : MonoBehaviour {
       private bool started = false;
    
       void Start () {
          Debug.Log ("Mover Started");
          started = true;
       }
    }
    

    如果您将此脚本附加到场景中的游戏对象并播放该场景。该脚本将运行并打印出“Mover Started”并将私有布尔值设置为 true。

    这也是与其他对象或脚本交互的许多其他方式。希望它能把事情弄清楚一点。

    【讨论】:

      【解决方案3】:

      如果您查看 Unity 的 MonoBehaviour 文档,您会发现与您的项目关联的每个 JS 文件都会自动派生自 MB。如果您正在编写 c#,请了解并非所有内容都必须是 MB。游戏层次结构中的对象只能附加从 MB 对象继承的组件脚本。 Unity 处理这些对象的构建,而 MB 实际上是禁止您自己构建的。

      另外,我认为您最好通过unityAnswers 获得与 Unity 相关的帮助。

      【讨论】:

      • 感谢您的回答!我会检查 unityAnswers :D
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-12
      • 2015-09-20
      • 2012-11-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多