Hello~大家好我是九艺维度的猫皮皮 姆汤~~
对于刚开始接触studio的开发者看着管理器面板的资源类会有点犯迷糊~
今天就讲讲这些资源类的作用(看完之后想深入的可以去看看APIhttps://developer.roblox.com/zh-cn/api-reference)
在准备讲之前,我们先了解下什么是单例
单例就是在全局中只有它一个类对象(它是唯一的)(暂时先这样子理解)
这个类负责创建自己(的对象),还提供直接访问的方式访问这个类对象,不需要去实例化该类的对象
(这个是设计模式当中单例模式的概念)
RS已经给我们提供了单例服务类,不用我们去写~
管理区基本都是顶级单例,可以用GetService函数获取
Instance.new构造函数无法对这些单例服务类创建此对象
Workspace
这里就是游戏工作区(游戏场景)游戏开始之后呈现(渲染)的场景以及人物资源都会在这个游戏工作区(游戏场景)中
可以通过多种方法访问(建议通过服务或者属性访问因为是受到保护的)
例: Workspace ——全局变量
game.Workspace——DataModel的一个属性
game.GetService(“Workspace”)——工作区是一个服务
需要知道的几个点
1.无法删除游戏场景
2.游戏场景会清理从 BasePart物体掉到Workspace.FallenPartsDestroyHeight的物体
3.在客户端可以通过 Workspace.CurrentCamera 属性访问Camera 对象
4.可以使用 Workspace.Terrain 属性访问 Terrain 对象
Players
就是加入游戏后连接到roblox服务器还有未连接到roblox服务器的玩家列表
Lighting
Lighting控制着游戏中的环境光与照明 (游戏中可设置灯光属性)
注意
Lighting只能控制环境光 其他的点光源是另外设置的是根据其他部件决定
ReplicatedFirst
所有客户端优先加载一次资源(教程视频或者说玩家显示的GUI)
ReplicatedStorage
ReplicatedStorage会将一些复杂的游戏资源复制到Roblox服务器存储起来,方便与之连接的玩家需要时可随时使用(比如怪物呀,武器呀等)
注意奥~
1.可以从服务器端和客户端的Script或LocalScript来访问ReplicatedStorage里的资源(子对象)
2.将对象设为ReplicatedStorage的子项,就能复制对象到客户端
3.玩家可以访问和修改ReplicatedStorage里复制出来的对象,这些更改不会同步到服务器和其他客户端
4.ReplicatedStorage子项里的Script或LocalScript不会运行,但其中ModuleScript可以被访问和运行,客户端脚本能在StarterPlayerScripts和ReplicatedFirst等多个对象身上运行
5.对于只能用服务器端访问对象,推荐使用ServerStorage存储,降低网络消耗
ServerScriptService
在ServerScriotService里的脚本会在服务器运行,无法从客户端访问
ServerStorage
存储在服务器的数据对象资源(比如多人射击中 可以用来一直复用的子弹可不用删除,可以在这里面获取)
StarterGui
StarterGui是用来保存游戏开始之后要展示使用的GUI对象
StarterPack
将服务器的背包资源数据复制到每个玩家的背包中,用于存放Tools,有时候也会存放LoaclScript,保证每个玩家都有一个复制的对象
StarterPack的内容通常都是预制体,游戏运行时通过添加或移除Tool改变内容,玩家重生或背包重新加载时由服务器更新玩家背包里内容
StarterPlayer
1.将每个进入服务器Player 对象的属性设置为StarterPlayer中对应的值(游戏开始之后会将StarterPlayer的值初始化给Player对象)
1.StarterPlayerScripts,为每位玩家游戏开始之后运行一次脚本
2.StarterCharacterScripts,为每位玩家重生之后添加的脚本
3.Humanoid,名为StarterHumanoid,为每位玩家的角色设置默认人形角色
4.Model,名为StarterCharacter,为所有玩家的角色模型
SoundService
游戏中的声音播放时各种属性由SoundService去设置,SoundService通常用来存储SoundGroup声音组件,SoundGroup声音组件对象运行时不需要SoundService服(只负责去初始化设置)
Chat
Chat负责运行 Lua 聊天系统的脚本,会将如Scripts 和 ModuleScripts之类的默认对象插入到Chat服务
LanguageService(不用在乎~)
TestService
TestService为Roblox内部的服务,用来在引擎进行分析测试和在游戏中编写复杂的引擎测试