自定义物品相关问题
创建自制枪械/自制近战武器
(1) 【元件栏】-【玩法】-【功能】中有”武器库”、“自制枪械”、“自制近战武器”。

使用自制枪械/自制近战武器
(1) 使用OpenAuxiliaryAiming(控制自定义武器的辅助瞄准开关)API时需先配置好该枪械的辅助瞄准相关设置。

使用:
GameClient.lua
--@description 游戏开始时客户端的操作function GameClient:OnStart() --点击按钮关闭辅助瞄准开关 UI:RegisterClicked(106954,function() CustomItem:OpenAuxiliaryAiming(ItemId,false)-- ItemId替换为你的自制枪械或自制武器的实例ID,可从【编辑】-【基础】-【实例信息】中获取 end)end创建自制装备
![]() | (1) 从【元件栏】-【玩法】-【功能】中拖出【自制装备】到场景。 |
|---|---|
![]() | (2) 在【编辑】-【基础】-【装备基础】中可设置装备类型及附加骨骼。 |
![]() | (3) 选中初始附加的装备模型删除。 |
![]() | (4) 选择一个元件附加至自制装备上。 |
使用自制装备
GameServer.lua
--@description 游戏开始时服务端的操作function GameServer:OnStart() -- 在坐标(0,0,200)处生成自定义物品 local pos = Engine.Vector(0, 0, 200) Inventory:GenerateDropCustomItem(ItemId, 1, pos)-- ItemId替换为你的自制装备的实例ID,可从【编辑】-【基础】-【实例信息】中获取end![]() | (1) 运行游戏我们就可以看到在场景中生成了一个可拾取的自制装备。 |
|---|---|
![]() | (2) 拾取后装备效果如下: |
创建自制物品
![]() | (1) 在地图【玩法】-【功能】页签中拖出【自制物品】。 |
|---|---|
![]() | (2) 选择一个元件附加至【自制物品】上,这里我使用了”星星棒”这个元件。 |
![]() ![]() | (3) 附加完成后可选中自制物品,点击【编辑】,在物品预览中点击”照相机”即可更改物品预览图片。 |
![]() | (4) 调整好点击”拍照”按钮,之后我们就可以看到物品预览图被更改了。 |
使用自制物品
- 解答:
以之前我们制作好的一个自制物品为例,我们来尝试使用它吧。
(1) 首先我们来获取自定义物品的ID,在详情页中的实例信息一栏中可以看到有一个物品ID,点击最后的”复制”按钮可一键复制该ID。
(2) 输入以下代码:
GameServer.lua
--@description 游戏开始时服务端的操作function GameServer:OnStart() local playerIds = Character:GetAllPlayerIds()--获取所有服务端上所有的玩家ID for _, v in ipairs(playerIds) do--遍历玩家表 local addCount = Inventory:AddCustomItem(v, "lp493", 1)--给玩家添加自定义物品,将"lp493"替换为你的自定义物品ID endend(3) 点击试玩就可在【背包】-【玩法】中查看到这个自定义物品已经被添加到我们的背包了。

如何获取自定义物品ID
- 解答:
- 编辑器中获取,比如:
自制物品------【编辑】------【实例信息】------【物品ID】,点击最后的”复制”按钮可一键复制该ID。

- API返回值,比如GetAllItem,可以通过返回值的isCustom字段来判断是不是自定义物品ID,其他API中也有类似字段。
使用:
GameServer.lua
local items = Inventory:GetAllItem(playerId) --获取背包所有物品for k,info in pairs(items) do --遍历背包中所有物品 if info.isCustom then --当物品为自定义物品时 print(info.itemId) --打印自定义物品Id endend自定义物品ID与物品ID的差异是什么
- 解答:
- 自定义物品ID是创作者使用 功能元件------自制物品 所创建元件的物品ID,自定义物品的外观、属性由创作者自定义。而物品ID是官方内置物品的类型ID,比如金币(101001)、步枪(100100001)、手雷(100500001)等。
- 类型不同,自定义物品ID类型为String,而物品ID类型为Number,使用时需要注意区分。Lua中,可以通过type()函数来获取变量类型。
- 所用到的API不同,比如AddItem与AddCustomItem,后者是针对于自定义物品ID使用的。










