Unity-脚本

目录

脚本是什么

脚本创建的规则(基本)

创建脚本步骤

Monobehavior基类

不继承自MonoBehaviour的类


脚本是什么

Unity的脚本是一种用于编写游戏逻辑和功能的程序代码。在Unity游戏引擎中,脚本是通过C#或Unity自带的JavaScript(实际上是UnityScript)编写的。脚本可以被附加到游戏对象上,以控制其行为、动画、物理模拟等。

Unity的脚本可以实现各种功能,例如:

1. 控制游戏对象的移动、旋转和缩放。
2. 处理用户输入,例如键盘、鼠标或触摸屏的输入。
3. 实现游戏逻辑,例如敌人的AI行为、碰撞检测、计分系统等。
4. 创建动画效果,包括角色动画、场景特效等。
5. 操控物理引擎,例如模拟物体的重力、碰撞反应等。
6. 与游戏场景中的其他对象进行交互和通信。
7. 实现游戏界面和用户界面的显示和交互。

Unity的脚本是游戏开发过程中非常重要的组成部分,它们使得开发者可以根据自己的需求,自定义和扩展游戏的功能和行为。

脚本创建的规则(基本)

以下是创建Unity脚本的常见规则:

1. 脚本文件必须使用.cs(C#脚本)或.js(UnityScript脚本)作为文件扩展名。

2. 脚本文件一般放置在Assets文件夹中。

3. 脚本文件的第一行应该是一个注释,用于提供脚本的简要描述。例如,"// This script controls player movement"。

5. 脚本文件中的类名应与文件名相匹配,相一致。并且应采用帕斯卡命名法(PascalCase)。例如,如果脚本文件名为"MyScript.cs",类名应为"MyScript"。

6. 默认继承MonoBehaviour类。例如,"public class MyScript : MonoBehaviour"。

7. 脚本类中的变量和方法应使用驼峰命名法(camelCase)。例如,"private int playerScore;"、"void MovePlayer()"。

8. 在脚本中使用的公共变量或方法应使用public访问修饰符。这样可以确保它们在Unity编辑器中可见并可以从其他脚本中访问。

9. Unity脚本应包含Start()和Update()方法。Start()在脚本启动时执行一次,而Update()在每一帧中执行。

10. 脚本中的注释应该清晰明了,解释代码的功能、目的以及使用方法。

这些规则有助于保持脚本的一致性和可读性,并确保Unity能够正确加载和处理脚本文件。

创建脚本步骤

1.在Assets下面创建一个文件夹

2.右键文件夹,选择“C#Script”,即新建C#脚本

3.双击它就可以在vs中打开

Monobehavior基类

1.脚本默认继承MonoBehaviour类,否则不能挂载到GameObject。如,"public class MyScript : MonoBehaviour"。

2.MonoBehaviour基类不能直接使用new关键字实例化。在Unity中,脚本组件(例如MonoBehaviour)是通过将脚本附加到游戏对象上来创建的,而不是通过直接实例化对象。

3.对于继承自MonoBehaviour的脚本类,默认情况下是不能直接写构造函数的。

4.继承了MonoBehaviour的类也可以再次被继承

在Unity中,MonoBehaviour是所有脚本组件的基类。你可以创建一个新的类,并从继承MonoBehaviour的类派生出来,以进一步扩展其功能。

例如,你可以创建一个名为"MyScript"的新类,并从MonoBehaviour派生出来:

public class MyScript : MonoBehaviour
{
    // 添加自定义的字段、属性和方法
}

然后,你可以再创建一个新类,并从"MyScript"派生出来:

public class MyDerivedScript : MyScript
{
    // 添加额外的字段、属性和方法
}

通过这样的继承链,你可以在派生类中添加新的功能,同时仍然可以使用基类中定义的方法和事件。仍然可以挂载到GameObject上。

不继承自MonoBehaviour的类

在Unity中,如果一个类不继承自MonoBehaviour,它将不具有在游戏对象上附加脚本组件的能力,也无法直接访问Unity的生命周期方法和事件。这些类通常用于实现一些独立于游戏对象的功能,例如自定义数据结构、算法、工具类等。

以下是在Unity中创建不继承自MonoBehaviour的类的一些规则:

1. 不可通过直接附加到游戏对象GameObject的方式使用:不继承自MonoBehaviour的类无法直接附加到游戏对象上作为组件。

2. 需要手动管理实例化和销毁:不继承自MonoBehaviour的类需要手动实例化和销毁对象,而不是由Unity自动管理。

3. 不能使用协程:不继承自MonoBehaviour的类无法使用Unity的协程功能,因为协程是基于MonoBehaviour的。

4. 不能直接访问游戏对象和组件:不继承自MonoBehaviour的类无法直接访问游戏对象和其他附加的组件。如果需要与游戏对象进行交互,可以通过参数传递或其他方式将相关信息传递给该类。

5.可以使用new关键字来实例化对象。这与在普通的C#编程环境中创建对象的方式相同。

如果你有一个不继承自MonoBehaviour的类叫做"MyClass",你可以使用以下方式创建它的实例:

MyClass myObject = new MyClass();

6.在Unity中,不继承自MonoBehaviour的类通常用于实现单例模式或者作为结构体(struct)。

  1. 单例模式:对于只需要一个实例的类,可以使用单例模式来确保全局只有一个对象。你可以将不继承自MonoBehaviour的类设计为单例,在其中使用静态字段和方法来管理唯一实例的创建和访问。

  2. 结构体(struct):如果某个类表示一种数据结构而不需要附加到游戏对象上,你可以考虑使用结构体来代替类。结构体是值类型,适合存储简单的数据结构,并且不需要进行引用传递。

除了以上两种情况,不继承自MonoBehaviour的类还可以用于实现其他独立的逻辑和功能,例如工具类、算法实现等。

不继承自MonoBehaviour的类在Unity中没有直接与游戏对象交互的能力,因此它们主要用于处理游戏逻辑和数据操作,而不是直接控制游戏对象的行为。

7.不用保留默认函数。

  • 38
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值