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
: 动画的缓动效果