与操作项配合使用。操作项可以指定角色手持某种物品才可以点击按钮。
需要设置操作项的Type与物品项的Type和Target Type相同才会关联。
在默认角色中有对操作项的支持,若为自定义角色则需要自行处理相关逻辑
添加物品项的两种方式
在Unity中挂载
DMKnapsackItem
组件选择需要添加物品项的游戏物体,
AddComponent -> DMBuildInScript -> DMKnapsackItem
即可添加物品项。使用
KnapsackConfig.xml
文件在组件对应的文件夹中,创建名为
KnapsackConfig.xml
的配置文件,运行时将会动态挂载物品项。
两种添加物品项的方式可以同时使用,根据不同情况自行选择添加方式。
物品项相关字段说明
字段 | 说明 |
Id | 物品项唯一ID |
Status | 物品状态ID |
Type | 物品类型ID |
UI offset | 物品项显示位置默认与当前游戏物体相同,设置显示位置偏移量 |
Name | 物品名称 |
Description | 物品描述 |
Picture | 物品在物品栏显示的图标 |
Knap type | 显示物品放在左/右手中 |
Count | 物品数量 |
CD time | 下一次使用的等待时间 |
Is apply source only | 是否应用到源 |
Target type | 目标类型 |
Distance | 操作距离 |
<?xml version="1.0" encoding="utf-8"?> <ArrayOfKnapsackItem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <KnapsackItem> <Dir>Null</Dir> <Id>20002</Id> <Name>手机</Name> <Description>Null</Description> <Picture>Null</Picture> <Status>0</Status> <Type>0</Type> <OperType>0</OperType> <Count>0</Count> <CDTime>0</CDTime> <IsApplySourceOnly>false</IsApplySourceOnly> <TargetType>0</TargetType> <Distance>0</Distance> </KnapsackItem> <KnapsackItem> <Dir>Null</Dir> <Id>Null</Id> <Name>Null</Name> <Description>Null</Description> <Picture>Null</Picture> <Status>0</Status> <Type>0</Type> <OperType>0</OperType> <Count>0</Count> <CDTime>0</CDTime> <IsApplySourceOnly>false</IsApplySourceOnly> <TargetType>0</TargetType> <Distance>0</Distance> </KnapsackItem> </ArrayOfKnapsackItem>
示例
在Unity创建一个物品资源并打包:
创建一个需要物品的操作项。设置操作项的Type与物品的Type相同。
添加操作项的点击事件,点击时向控制台输出日志:
using DM.IFS; using UnityEngine; public class Main : ScriptManager, IMesRec { private void Awake() { sender.DebugMode = true; } public void RecMessage(SendType type, GameObject senderObj, int eventType, string param) { sender.Log(string.Format("组件[{0}]收到一条[{1}]类型的消息,发送者名称为[{2}],事件类型ID是[{3}],携带了参数:{4}", this.gameObject.name, type.ToString(), senderObj.ToString(), eventType, param == null ? "" : param)); } }
将组件放到DM平台中并运行: