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

深圳网站优化推广方案百度网址导航主页

深圳网站优化推广方案,百度网址导航主页,网页设计代码大全表单,wordpress管理员手册点击对话系统 可实现点击物体后自动移动到物体附近,然后弹出对话框进行对话。 基于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.dinnco.com/news/7303.html

相关文章:

  • 做网站需要买什么如何优化关键词
  • 茌平做网站推广b2b平台免费推广网站
  • 新疆建设云资质查询网站推广方式和推广渠道
  • 购书网站开发的意义百度指数搜索指数的数据来源
  • 上线了做网站怎么查看中国第三波疫情将在9月份
  • 宝塔面板上传自己做的网站企业建站 平台
  • 长沙信息网seo百家论坛
  • 做网站引用没有版权的歌曲seo流量
  • 网站运营怎么学深圳疫情最新消息
  • 丹东公司做网站如何查一个关键词的搜索量
  • 海鲜网站模板seo营销方案
  • 专门做音效的网站代哥seo
  • 网站app简单做百度大搜推广和百度竞价
  • 重庆梁平网站制作公司百度app官网下载
  • 宣威市住房与城乡建设局网站网站换了域名怎么查
  • 邯郸公司网站建设seo推广怎么学
  • 狗爹域名网站广州新闻头条最新消息
  • 医院网站建设价格淘宝客怎么做推广
  • 有关电子商务网站建设的论文市场营销培训
  • 中国新闻社是国企还是私企百度seo排名公司
  • 视频网站如何做营销百度排名优化
  • 城市建设鹤岗市网站whois域名查询
  • 深圳系统网站开发seo网站排名优化公司哪家好
  • b2b 网站系统网站的建设流程
  • 西宁网站建设哪家好郑州关键词优化费用
  • 广州网站优化平台互联网广告公司排名前十
  • 为什么要建立企业网站百度竞价怎么做
  • 成都网站平台建设免费网站自助建站系统
  • 外贸网站怎么做谷歌搜索常用的网络推广手段有哪些
  • 网站开发的工作方法如何交换优质友情链接