MonoBehaviour 和MonoBehaviour

MonoBehaviour

Unity3D 中可以给每个游戏对象添加脚本,这些脚本必须继承 MonoBehaviour,用户可以根据需要重写 MonoBehaviour 的部分生命周期函数,这些生命周期函数由系统自动调用,且调用顺序与书写顺序无关。

MonoBehaviour 的继承关系:MonoBehaviour→Behaviour→Component→Object.

MonoBehaviour 的生命周期函数主要有:
OnValidate: 确认事件,脚本被加载、启用、禁用、Inspector 面板值被修改时,都会执行一次
Awake:唤醒事件,只执行 1 次,游戏一开始运行就执行。
OnEnable:启用事件,只执行 1 次,当脚本组件被启用的时候执行一次。
Start:开始事件,只执行 1 次。
FixedUpdate:固定更新事件,每隔 0.02 秒执行一次,所有物理组件相关的更新都在这个事件中处理。
Update:更新事件,每帧执行 1 次。
LateUpdate:稍后更新事件,每帧执行 1 次,在 Update 事件执行完毕后再执行。
OnGUI:GUI渲染事件,每帧执行 2 次。
OnDisable:禁用事件,只执行1 次,在 OnDestroy 事件前执行,或者当该脚本组件被禁用后,也会触发该事件。
OnDestroy:销毁事件,只执行 1 次,当脚本所挂载的游戏物体被销毁时执行。

NetworkBehaviour

NetworkBehaviour 脚本适用于具有网络身份组件的游戏对象。这些脚本可以执行高级 API 功能,例如 Commands、ClientRpc 和 SyncVars。 使用 Mirror 的服务器权威系统,服务器必须使用 NetworkServer.Spawn 函数来生成具有网络身份组件的游戏对象。以这种方式生成它们会为它们分配一个 netId 并在连接到服务器的客户端上创建它们。

注意:这不是您可以直接添加到游戏对象的组件。相反,您必须创建一个继承自 NetworkBehaviour(而不是默认的 MonoBehaviour)的脚本,然后您可以将您的脚本作为组件添加到游戏对象中。

属性

isServer 如果此游戏对象已生成,则在服务器上下文中返回 true。

isClient 如果此游戏对象已由服务器生成,则在客户端上下文中返回 true。

isLocalPlayer 如果此游戏对象代表为此客户端创建的玩家,则在客户端上返回 true。

hasAuthority 如果此客户端对此游戏对象具有权限,则在客户端上返回 true。它在服务器上下文中毫无意义。

netId 此游戏对象的唯一网络 ID。服务器在运行时分配它。它对于网络上的所有游戏对象都是唯一的。

netIdentity 返回此对象的网络标识

connectionToServer
与附加到此游戏对象的网络身份组件关联的网络连接。这仅对客户端上的本地player对象有效,对于客户端上可能存在的其他player对象为空。

connectionToClient
与附加到此游戏对象的网络身份组件关联的网络连接。这对于服务器上已分配给特定客户端的游戏对象有效,例如玩家对象、宠物、追随者或单个客户“拥有”的其他对象。

Network Behaviour 脚本具有以下功能:

同步变量 网络回调 服务器和客户端函数 发送命令 客户端 RPC 调用 网络时间

猜你喜欢

转载自blog.csdn.net/weixin_45810196/article/details/131644638
今日推荐