当前位置: 首页 > news >正文

网站最佳颜色搭配云客网平台

网站最佳颜色搭配,云客网平台,泉州网站建设报价,程序开发语言点击对话系统 可实现点击物体后自动移动到物体附近,然后弹出对话框进行对话。 基于Unity 简单角色对话UI脚本的编写(新版UI组件)和Unity 关于点击不同物品移动并触发不同事件的结合体,有兴趣可以看一下之前文章。 下边代码为U…

点击对话系统

可实现点击物体后自动移动到物体附近,然后弹出对话框进行对话。
在这里插入图片描述
在这里插入图片描述

基于Unity 简单角色对话UI脚本的编写(新版UI组件)和Unity 关于点击不同物品移动并触发不同事件的结合体,有兴趣可以看一下之前文章。
下边代码为UI界面的公共脚本:

public class DialogueUI : MonoBehaviour
{private TextMeshProUGUI nameTexe;//获取名称的Text组件private TextMeshProUGUI descriptionTexe; //获取内容的Text组件private Button resumeButton;//继续对话的按钮public List<string> contentlist;//对话列表private int contentIndex = 0;//对话数组private void Start(){//获取组件nameTexe = transform.Find("NameText").GetComponent<TextMeshProUGUI>();descriptionTexe= transform.Find("ContentText").GetComponent<TextMeshProUGUI>();resumeButton = transform.Find("ResumeButton").GetComponent<Button>();resumeButton.onClick.AddListener(this.OnContinueButtonClick);descriptionTexe.text = contentlist[0];Hide();}public void Show()     {gameObject.SetActive(true);//显示对话框}public void Show(string name, string[] content)//调用方法获得对话{contentIndex = 0;nameTexe.text = name;contentlist=new List<string>();contentlist.AddRange(content);descriptionTexe.text = contentlist[0];Show();}public void Hide() //关闭对话{gameObject.SetActive(false);}private void OnContinueButtonClick(){//调用对话列表,如果没有对话,窗口关闭contentIndex++;if (contentIndex >= contentlist.Count){Hide();return;}descriptionTexe.text = contentlist[contentIndex];}}

下边为被点击物体挂载的脚本:

public class ItemObject : InteractionObject
{public string name;public string[] contenList;public DialogueUI dialogueUI;protected override void Interact(){print("我就是个东西!");dialogueUI.Show(name, contenList);}
}

然后是Player挂载的触发脚本:

public class PlayerRoutine : MonoBehaviour
{// Start is called before the first frame updateprivate NavMeshAgent PlayerAgent;void Start(){PlayerAgent = GetComponent<NavMeshAgent>();}// Update is called once per framevoid Update(){if (Input.GetMouseButtonDown(0)&&EventSystem.current.IsPointerOverGameObject()==false)//点击鼠标左键并且没有点击到IU组件{Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);//创建一条射线RaycastHit hit;bool isCollide = Physics.Raycast(ray, out hit);if (isCollide){if (hit.collider.tag == "Ground")//假如点击物体的标签为Ground{PlayerAgent.stoppingDistance = 0;//停止距离为0PlayerAgent.SetDestination(hit.point);//移动到点击位置}else if (hit.collider.tag == "NPC") //假如点击物体的标签为NPC{hit.collider.GetComponent<InteractionObject>().OnClick(PlayerAgent);//调用InteractionObject中的Onclick方法}else if (hit.collider.tag == "Item") {hit.collider.GetComponent<InteractionObject>().OnClick(PlayerAgent);}}}}
}

还有公共管理类脚本:

public class InteractionObject : MonoBehaviour
{private NavMeshAgent PlayerAgent;private bool haveinteracted=false;//用于判断方法已经调用public void OnClick(NavMeshAgent PlayerAgent) {this.PlayerAgent = PlayerAgent;PlayerAgent.stoppingDistance = 2;//寻路停止距离PlayerAgent.SetDestination(transform.position);//移动到寻路点haveinteracted = false;}private void Update(){if (PlayerAgent != null&&haveinteracted==false&&PlayerAgent.pathPending==false)//后边是判断路径是否计算完成{if (PlayerAgent.remainingDistance <= 2)//距离目标点的距离是否小于2米{Interact();//调用Interact()方法haveinteracted = true;}}}protected virtual void Interact() //便于重写{print("点到了NPC");}
}
http://www.hkea.cn/news/251885/

相关文章:

  • 手游网站做cpc还是cpm广告号厦门网页搜索排名提升
  • 人个做外贸用什么网站好宁波百度seo点击软件
  • 诈骗网站怎么做的企业网站seo案例分析
  • 如何做网站接口湖南营销型网站建设
  • 进入兔展网站做PPt软文营销ppt
  • app网站新闻危机公关
  • 东莞关键词优化实力乐云seo南宁seo外包服务商
  • 做网站都是用源码么免费注册个人网站不花钱
  • 建设网站需要两种服务支持官网设计公司
  • 安庆做网站seo建站收费地震
  • 绵阳住房和城市建设局网站官网seo排名优化联系13火星软件
  • 网站开发建设费用关键词异地排名查询
  • 网站建设企业电话广州优化疫情防控举措
  • 重庆模板网站建设百度网站域名注册
  • 安徽建设厅网站地址网络广告推广方式
  • 门户网站内容管理建设方案企业关键词优化推荐
  • 北京网站建设公司飞沐小学生一分钟新闻播报
  • 企业网站建设申请域名seo赚钱
  • 2017网站开发前景百度网盘资源链接入口
  • 平面广告设计主题seo是怎么优化上去
  • 正规网站制作公司哪家好四年级写一小段新闻
  • 济南网站建设安卓版快手seo
  • java开发兼职网站开发线上推广平台
  • 北京网站建设开发公司网站自动收录
  • wordpress最多多少用户seo基础知识
  • 湘潭做网站 去磐石网络b站推出的短视频app哪个好
  • 宿迁做网站的公司有人看片吗免费观看视频
  • 什么人最需要建设网站淘宝运营一般要学多久
  • 海南网站优化东莞免费建站公司
  • 传播型网站建设优势有哪些推广类软文