Appearance
S-🌏 游戏世界
GameWorld 是整个游戏世界的主要接口,它提供了以下核心功能:
- 控制环境:管理天气、物理重力、画面滤镜等全局场景属性
- 实体管理:创建和搜索游戏中的实体对象
- 事件系统:监听实体和玩家的碰撞、伤害、互动等事件
你可以通过全局对象 world 来使用这些功能。
类定义
typescript
declare const world: GameWorld;
declare class GameWorld {
//...
}属性列表
基础信息
projectName: 本张地图名称,对应项目设置中的名称serverId: 当前服务器 IDcurrentTick: 世界当前的 Tick 计数useOBB: 是否切换为 OBB 包围盒计算方式
物理系统
gravity: 世界重力airFriction: 空气阻力
天气效果
雾效果
maxFog: 最大雾量fogColor: 雾的颜色fogStartDistance: 雾起始距离fogHeightOffset: 雾高度fogUniformDensity: 均匀雾量fogHeightFalloff: 高度衰减系数
雨天效果
rainSpeed: 雨的速度rainColor: 雨的颜色rainDirection: 雨的方向rainDensity: 雨的密度rainInterference: 雨的不规则性rainSizeLo: 雨滴的最小直径rainSizeHi: 雨滴的最大直径
下雪效果
snowColor: 雪花颜色snowTexture: 雪花纹理snowDensity: 雪的密度snowFallSpeed: 雪花下落速度snowSpinSpeed: 雪花自旋速度snowSizeLo: 雪花的最小直径snowSizeHi: 雪花的最大直径
光照系统
lightMode: 作用于天空和环境光的照明类型sunFrequency: 太阳运动的频率sunPhase: 太阳的初始位置sunDirection: 太阳光照明方向sunLight: 太阳光颜色亮度skyLeftLight: 环境光在-X 轴方向的亮度skyRightLight: 环境光在+X 轴方向的亮度skyBottomLight: 环境光在-Y 轴方向的亮度skyTopLight: 环境光在+X 轴方向的亮度skyFrontLight: 环境光在-Z 轴方向的亮度skyBackLight: 环境光在+Z 轴方向的亮度
音效系统
ambientSound: 设置背景音乐,从地图运行开始循环播放playerJoinSound: 当玩家进入地图时,播放的音效playerLeaveSound: 当玩家离开地图时,播放的音效placeVoxelSound: 方块被放置时,播放的音效breakVoxelSound: 方块被销毁时,播放的音效
方法
聊天系统
say: 向所有玩家广播一条消息createTempChat: 创建临时聊天频道destroyTempChat: 批量销毁临时聊天频道addTempChatPlayer: 向临时聊天频道添加玩家removeTempChatPlayer: 向临时聊天频道移除玩家getTempChats: 获取当前地图存在的临时聊天频道getTempChatUsers: 获取临时聊天频道中的玩家
实体管理
createEntity: 创建一个新实体 GameEntity 或复制一个现有的实体entityQuota: 返回脚本当前仍可创建的实体数量querySelector: 搜索满足条件的第一个实体querySelectorAll: 搜索满足条件的所有实体,返回一个列表searchBox: 搜索指定范围中的全部实体raycast: 射线检测,返回碰到的实体或方块
区域管理
addZone: 创建一个区域removeZone: 删除指定区域zones: 返回所有的区域列表
物理系统
addCollisionFilter: 添加碰撞过滤器,关闭两个实体组之间的碰撞removeCollisionFilter: 移除碰撞过滤器clearCollisionFilters: 清除全部碰撞过滤器collisionFilters: 返回当前有效的全部碰撞过滤器testSelector: 测试实体是否符合某个选择器的条件
音效与动画
sound: 播放一段声音,所有玩家都能听到animate: 创建一个关键帧动画getAnimations: 获取当前世界所有已创建的动画getEntityAnimations: 获取实体所有已创建的动画getPlayerAnimations: 获取玩家所有已创建的动画
地图传送
teleport: 地图组内传送能力,能够让玩家被传送到指定地图中
事件监听
基础事件
onTick: 这是世界的计时事件,每 64 毫秒触发一次,Tick 计数加 1onPlayerJoin: 当玩家加入地图时触发onPlayerLeave: 当玩家离开地图时触发onChat: 当玩家在聊天窗口说话时触发
实体事件
onEntityCreate: 当实体被创建时触发onEntityDestroy: 当实体被销毁时触发onInteract: 玩家与实体进行互动时触发onClick: 当玩家用鼠标点击实体时触发
输入事件
战斗事件
onTakeDamage: 当实体受到伤害时触发onDie: 当实体死亡时触发onRespawn: 当实体复活时触发
碰撞事件
onEntityContact: 当实体与实体发生碰撞时触发onEntitySeparate: 当实体与实体结束碰撞时触发onVoxelContact: 当实体与方块发生碰撞时触发onFluidEnter: 当实体进入水里/液体时触发onFluidLeave: 当实体离开水里/液体时触发
区域事件
商城事件
onPlayerPurchaseSuccess: 当玩家成功购买物品时触发
接口定义
事件接口
GameTickEvent: 每一刻(tick)触发一次的事件GamePlayerEntityEvent: 当创建或销毁实体时触发的事件GameChatEvent: 由聊天触发的事件GameEntityEvent: 实体创建与销毁事件GameInteractEvent: 当实体互动时触发的事件GameInputEvent: 输入事件,在玩家按下或松开按钮时触发GameClickEvent: 游戏检查事件GameDamageEvent: 当实体收到伤害时触发的事件GameDieEvent: 当实体死亡时触发的事件GameRespawnEvent: 当实体复活时触发的事件GameTriggerEvent: 当实体/玩家触发区域的事件GameEntityContactEvent: 当两个实体碰撞时触发的事件GameVoxelContactEvent: 当实体触碰方块时触发的事件GameFluidContactEvent: 当实体进入或离开液体时触发的事件GamePurchaseSuccessEvent: 当玩家成功购买物品时触发的事件
配置接口
GameEntityConfig: 用于控制实体的参数组GameSelectorString: 选择器可以方便搜索游戏内的全部对象GameRaycastOptions: 进行射线检测的参数配置GameRaycastResult: 射线检测的结果,包含射线和所击中目标的信息GameZoneConfig: 用于区域的参数GameZone: 用于区域的配置GameSoundEffect: 使用 Sound()方法播放声音时,传入的参数GameWorldKeyframe: World 世界动画关键帧参数GameAnimationPlaybackConfig: 用于动画播放配置的参数组TeleportResult: 传送结果
枚举值
GameButtonType: 玩家按下的按钮类型GameEasing: 动画的缓动效果