Unity游戏环境交互系统

打印 上一主题 下一主题

主题 1028|帖子 1028|积分 3084

概述

交互功能使用同一个按钮或按钮列表,在不恻隐况下表现不同的内容,按下实行不同的操作。

按选项个数分类

环境交互系统可分为两种,单选项交互,一样寻常使用射线检测;多选项交互,一样寻常使用范围检测。第一人称游戏单选多选都可以用,因为第一人称人物背对一个可交互对象时表现交互选项让玩家迷惑,所以第一人称使用射线检测或使用人物面前的触发器举行范围检测。第三人称因为人物一样寻常在或者接近画面中央,基本上必须用以人物为中央的范围检测。
本质上,单选项交互让玩家通过转动视角选择交互选项,在可交互对象很密集的情景,玩家很难准确瞄准交互对象,但开发简朴。多选项交互玩家选择想要的交互选项更轻易,开发复杂。
按输入方式分类

电脑通过键盘按键(一样寻常是F)交互,滑轮选选项;手机通过按屏幕交互,上下滑动选选项,这导致二者的实现方式又不一样。电脑通过InputManager或PlayerInput,手机通过按钮回调。就是说电脑上的多个选项可以只是Image,手机上的选项有Button。
环境交互系统由这几个部分构成:

  • 环境检测;
  • 交互类型判断;
  • UI表现和回调添加;
  • 实行;
对于玩家,他能直接感觉到的只有UI表现和按下实行,环境检测、根据类型判断UI表现的内容、根据类型判断实行的类型完全由程序完成,所以玩家感觉不到交互系统的复杂性。
数据结构

一个游戏的交互类型选项是确定的,有限的,适适用枚举表示。把游戏支持的所有交互类型定义为枚举的选项:
  1. public enum ActionOption{
  2.     None,TakeGun,SwapGun,TakeItem,Talk,CheckPack
  3. }
复制代码
假如是单选项交互,就声明一个交互枚举变量,假如是多选项交互,就声明一个交互枚举列表。
环境检测

环境交互函数通过射线检测或范围检测得到可交互对象,使用分类函数得到这个交互的类型、对象名称,以此得到表如今界面上的文本、按下必要实行的操作。
可交互对象大概是一个物品、一个NPC、一扇门,交互对象类型毫不相干,但是都有“可交互”的特性。这很符合接口的计划初志,所以可以定义接口:
  1. public interface Interactive
  2. {
  3.     public abstract void InterAct();
  4. }
复制代码
所有的可交互对象继承可交互接口。射线或范围检测只要在检测到的碰撞体上实行获得接口,就能得到所有可交互对象。
  1. if(Physics.Raycast(rayOrigin,rayVector,out raycastHit,10,interactionLayerMask)
  2.         &&Vector3.Distance(player.transform.position,raycastHit.point)<interactionRange){
  3.             if(raycastHit.collider.TryGetComponent(out interactive))
  4.             {}
  5. }
复制代码
再把这个接口变量交给一个函数使用里氏转换判断它的具体类型 。




用滚轮改变选中的交互选项:
  1. void Update(){
  2.         GetScrollInput();
  3.     }
  4.     public void GetScrollInput(){
  5.         float delta=Mouse.current.scroll.ReadValue().y;
  6.         if(delta<0){
  7.             selectedInteraction++;
  8.         }
  9.         else if(delta>0){
  10.             selectedInteraction--;
  11.         }
  12.         selectedInteraction=Mathf.Clamp(
  13.             selectedInteraction,0,actionOptions.Count-1);
  14.         UpdateSelectedInteraction();
  15.     }
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

吴旭华

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表