Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(207评价)
优惠后 ¥1899.00优惠前 ¥2499.00 双十一全年最大力度限时优惠
1对1 答疑即时回复7天无理由退款30天价保提问必答

服务保障

1对1 答疑

提供专属的一对一在线答疑,快速答疑解惑。

即时回复

及时响应学习咨询,帮助解决问题。

7天无理由退款

购买后7天内可申请无理由退款。

30天价保

购买后30天内如遇降价,可申请价保。

提问必答

对于提问做到有问必答,帮您扫清学习过程中的种种障碍

一个关于C#接口的问题。
sdhexu发起了话题2017-06-11
2
回复
371
浏览

我们知道,当一个类实现了接口 IPointerClickHandler,就能响应鼠标点击事件,但这是怎么实现的呢?

假设我们自己写一个接口:IUseItemHandler,就是我想让物品被使用时,会被触发。

这个触发机制如何实现?

所有回复
  • sdhexu • 2017-06-11
    
    // 接口
    public interface IUseItemHandler {
         public void UseItem( GameObject whoUseItem, ItemInfo item );
    }
    
    
    
    // 玩家脚本
    
    public class PlayerController : MonoBehavie, IUseItemHandler
    {
          // Other Code  ..........
    
          public void UseItem( GameObject whoUseItem, ItemInfo item ) {
              print( whoUseItem.name + "使用了物品" + item.name );
          }
    }
    
    
    
    // 物品
    public class ItemInfo {
       
       // Other Code ....
       
       public beUsed( GameObejct whoUsed ) {
           
             // 当该物品被使用时,如何去调用所有实现了IUseItemHandler接口的类中的接口方法?
             // 这里怎么让我的接口能够触发???
              
       }
    }

     

    还有-5条回复,点击查看
    你还没有登录,请先登录或注册!
  • siki • 2017-06-11

    写一个管理类

      1, 一个集合存储所有的物品,并检测物品是否被使用了

      2,一个集合存储所有的IUseItemHandler对象(可以通过GameObject.FindWithType查找)

    当物品被使用的时候,遍历第二个集合,循环调用里面的useItem方法,并把参数传递过去

    还有-5条回复,点击查看
    你还没有登录,请先登录或注册!
发表回复
你还没有登录,请先 登录或 注册!