NPC阶段步骤

关于NPC系统的思路环节: 加载动画组件,方便控制动画。 加载配置表数据,从Manager那里加。保持Controller不与其他逻辑类接触。 之后做的事:如何能点击到NPC。

第1 碰撞体事件监测。

采用OnMouseDown,可以让鼠标与碰撞器产生交互。

(思考:鼠标放到人身上,如何产生发亮边际)。

  • Manager层

    NPC与其他系统产生交互处理,采用事件。(思考:事件与委托有什么具体区别?)

    function(NPC的功能)作为key,一个委托作为value,以一个字典保存。事件是NPC接口与其他系统的唯一接口。

    玩家与NPC的交互流程: 其他系统(商店还是副本)向NPC管理器注册事件,注册的事件放进了一个委托字典里。 首先接收到Controller层发送来的NPC参数(由玩家鼠标点击时产生交互),先判断NPC是否存在,再执行操作。交互操作时,先判断NPC种类,然后根据种类执行相应的方法。

  • Controller层

    OnMouseDown触发交互(注意防止连点,此方法适用于有碰撞器的3D场景对象),通过协程处理交互。

    协程处理了NPC人物朝向。

    Vector3 faceTo = (User.Instance.CurrentCharacterGameObject.transform.position - transform.position).normalized
    

    得到NPC朝向玩家的方向。用Lerp插值的方式改动人物的面朝向。

    (协程里可以作死循环且不影响主线程,但是不能做耗时的逻辑。)

    利用

    render = this.gameObject.GetComponentInChildren<SkinnedMeshRenderer>();
    

    做高亮处理。

    思考:注册事件时,怎么知道点击的是哪个NPC?

    答:交互流程以<Function,void UI方法>的形式注册事件→点击NPC→NPC传输自身ID找寻到相应Data→执行注册事件里的UI方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值