今天看了些Unity在虚拟仿真上的应用,以及Unity3D游戏开发的教程,最后重点看了下Unity中文文档“脚本”这块的内容,发现与我之前用的cocos creator
几乎一样,除了使用的编程语言不一样,内置UI,事件,游戏对象的属性面板都差不多,这也为我省下了不少时间。
Cocos 合成大西瓜游戏
在4个月前,我曾经也折腾过一两个礼拜的游戏开发,做的是“合成大西瓜”的游戏:
使用的脚本语言是Typescript
,我发现Cocos的脚本结构和Unity的差不多一样,就比如说游戏对象的生命周期:
在Cocos脚本中
export default class Game extends cc.Component {
start() {}
update() {}
}
在Unity脚本中
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Game : MonoBehaviour
{
void Start(){}
void Update(){}
}
当然还有很多雷同的部分,游戏引擎应该都这样设计的吧。
什么是游戏脚本?
脚本是什么?对于游戏引擎来说脚本到底干了些什么?
首先要明白一点,脚本对于任何一个游戏引擎来说都是必不可少的部分。
它的主要用途是响应玩家的输入,安排游戏过程中就发生的事件,实例化图形效果,控制游戏对象的物理行为,还可以为角色自定义AI系统等等。
Unity中的脚本概念
Unity创建脚本
- Project 面板左上方的 Create 菜单新建脚本
- 选择 Assets > Create > C# Script 来新建脚本
Unity脚本文件剖析
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Wall : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
- MonoBehaviour内置类派生类,用于创建可附加到游戏对象的新组件类型。
- Update(),处理游戏对象的帧更新。
- Start(),脚本初始化的位置。
Unity中的Prefabs
Prefabs中文翻译过来是预制件,它一般用于想在运行时实例化复杂的游戏对象或游戏对象的集合时使用,它非常方便,与使用代码从头开始创建游戏对象相比,有以下优点:
- 一行代码实例化。
- 内置窗口修改prefab。
- 无需更改代码即可更改所实例化的prefab。
以下是Prefab的使用代码,它有一个公共变量“myPrefab”,这是对预制件的引用,在 Start() 方法中创建该预制件的实例。
using UnityEngine;
public class InstantiationExample : MonoBehaviour
{
// 引用预制件。在 Inspector 中,将预制件拖动到该字段中。
public GameObject myPrefab;
// 该脚本将在游戏开始时简单地实例化预制件。
void Start()
{
// 实例化为位置 (0, 0, 0) 和零旋转。
Instantiate(myPrefab, new Vector3(0, 0, 0), Quaternion.identity);
}
}
还有一些Unity脚本概念,如协程,命名空间,脚本属性,事件,异常处理,请查看:https://docs.unity3d.com/cn/c...
Unity脚本中的重要类
GameObject
:可以存在于场景中的对象的类型MonoBehaviour
:基类,派生类Object
:在编辑器中引用的所有对象的基类Transform
:处理游戏对象动画Vectors
:操作 2D、3D 和 4D 点、线和方向的类Quaternion
:绝对或相对旋转的类ScriptableObject
:保存大量数据的数据容器Time
:测量和控制时间Mathf
:一组常见的数学函数Random
:随机值Debug
:可视化编辑器调试Gizmos
和Handles
:绘制线条和形状以及交互式手柄和控件
总结
今天主要是了解了下Unity当中的脚本,在这里简单小结一下要点:
- Cocos引擎和Unity引擎很相似,支持国产要开发微信小游戏就用Cocos。
- 脚本是一个游戏引擎必不可少的组成部分。
- 使用
Prefab
可以实例化复杂的游戏对象。 - Unity基础结构是继承
MonoBehaviour
类,Start
方法用于初始化,Update
方法是处理游戏对象的帧更新。
完!
您的点赞、评论、关注是对小编最大的鼓励 O(∩_∩)O👍👍👍