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

帮人做ppt的网站西安官网排名推广

帮人做ppt的网站,西安官网排名推广,国外的技术社区,外贸营销邮件主题文章目录 前言一、全局事件二、射线三、点选3D模型四、点击地面控制人物移动总结 前言 Unity输入事件分为两类#xff0c;全局触发和监听式触发。全局触发通常是运行在update在每帧进行检测#xff0c;而监听式触发是被动的输入事件。 一、全局事件 在最新的unity中有新和旧… 文章目录 前言一、全局事件二、射线三、点选3D模型四、点击地面控制人物移动总结 前言 Unity输入事件分为两类全局触发和监听式触发。全局触发通常是运行在update在每帧进行检测而监听式触发是被动的输入事件。 一、全局事件 在最新的unity中有新和旧两种输入系统此处只讲旧输入系统。新输入系统更类似与插件的形式绑定在unity中对多种设备的适配更加友好主机手柄、PC等操作可以一步到位如有需要会单独讲解。 using UnityEngine;public class InputTestScript : MonoBehaviour {void Update(){//按下空格键if(Input.GetKeyDown(KeyCode.Space)) {}//抬起空格键if(Input.GetKeyUp(KeyCode.Space)) {}//按下空格键持续触发if(Input.GetKey(KeyCode.Space)) {}//按下鼠标左键手机上则是按下屏幕if(Input.GetMouseButton(0)) {Debug.LogFormat(点击屏幕坐标:{0}, Input.mousePosition);}//手指触摸屏幕中if(Input.touchCount 0) {Touch touch Input.GetTouch(0);//开始触摸if(touch.phase TouchPhase.Began) {}//触摸移动if(touch.phase TouchPhase.Moved) {}//触摸结束if(touch.phase TouchPhase.Ended) {}//是否支持3D Touchif(Input.touchPressureSupported) {Debug.LogFormat(3DTouch的力度:{0}, touch.pressure);}}} }写法和用法都十分简单。如果需要监听多个触点例如多指操控可以使用一些插件快速实现。对于触摸屏多点触控的专业解决方案建议使用 TUIO协议。 二、射线 在 Unity 中射线Raycasting是一种用于检测从某一点沿某一方向发射的一条“射线”与场景中的物体相交的技术。射线检测在游戏开发中广泛应用例如点击检测、视线检测、物理碰撞、AI 视野等。Unity 提供了多种射线检测方法通过 Physics 类来使用。 using UnityEngine;using UnityEngine;public class Script_13_17 : MonoBehaviour {void Update(){// 检查鼠标左键是否被按下if (Input.GetMouseButtonDown(0)) {// 从鼠标点击位置生成一条射线Ray ray Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hit;// 执行射线检测检测第一个碰到的对象if (Physics.Raycast(ray, out hit)) {Debug.LogFormat(Raycast: {0} 3D坐标:{1}, hit.collider.name, hit.point);}// 执行射线检测检测所有碰到的对象RaycastHit[] hits Physics.RaycastAll(ray);foreach (var h in hits) {Debug.LogFormat(RaycastAll: {0} 3D坐标:{1}, h.collider.name, h.point);}}} } unity还提供了一个层级忽略射线该层级默认不接受射线碰撞。 三、点选3D模型 点选模型可以使用射线也可以使用unity封装的Event system她可以处理UI和3D对象的点击如果UI挡在3D模型上会优先相应UI。 1、给相机添加Physics Raycaster组件。 创建Click3D脚本挂在点选的物体上。 using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.Events;// 用于表示 3D 点击事件的 UnityEvent public class Click3DEvent : UnityEventGameObject, PointerEventData { }public class Click3D : MonoBehaviour, IPointerClickHandler {// 静态事件用于派发 3D 点击事件public static Click3DEvent click3DEvent new Click3DEvent();// 实现 IPointerClickHandler 接口的方法当对象被点击时调用public void OnPointerClick(PointerEventData eventData){// 触发 3D 点击事件将当前游戏对象和 PointerEventData 作为参数传递click3DEvent.Invoke(gameObject, eventData);}} 再创建一个脚本统一监听事件。 using UnityEngine; using UnityEngine.EventSystems;public class Click3DEventListener : MonoBehaviour {void Start(){// 监听 3D 点击事件当发生点击时执行回调函数Click3D.click3DEvent.AddListener(delegate (GameObject gameObject, PointerEventData arg1) {Debug.LogFormat(点选3D模型: {0}, gameObject.name);});} }如果没有效果请创建一个UI事件需要UI附带的EventSystem的支持。 四、点击地面控制人物移动 通过鼠标知道移动的地点再使用Vector3.MoveTowards根据步长就能够轻松移动模型在很多项目的demo阶段或者测试中都很实用。 using UnityEngine;public class Script_13_19 : MonoBehaviour {// 模型public Transform model;// 3DTextMeshpublic TextMesh textMesh;// 移动目的地private Vector3 m_MoveToPosition Vector3.zero;void Update(){// 检查鼠标左键是否被按下if (Input.GetMouseButtonDown(0)){// 从鼠标点击位置生成一条射线Ray ray Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hit;// 执行射线检测检测第一个碰到的对象if (Physics.Raycast(ray, out hit)){// 面朝选择点m_MoveToPosition new Vector3(hit.point.x, model.position.y, hit.point.z);model.LookAt(m_MoveToPosition);// 显示点击位置信息textMesh.text string.Format(点击位置{0}, hit.point);textMesh.transform.position hit.point;}}// 如果模型未达到目的地则移动模型if (model.position ! m_MoveToPosition){// 步长float step 5f * Time.deltaTime;model.position Vector3.MoveTowards(model.position, m_MoveToPosition, step);}} } 总结 简单的说了下Unity的输入事件和用法。
http://www.yingshimen.cn/news/70195/

相关文章:

  • 南博会官方网站建设投入设计师必备的国际设计网站
  • 深圳罗湖住房和建设局网站官网seo公司是怎么做的
  • wamp个人网站开发来源美图秀秀在线修图
  • 重庆网站制作建设常州网站建设找思创
  • 做网站开发需要考什么证书怎么做百度推广网站
  • 北京h5网站建设公司android 网站模板下载
  • 网站开发案例详解浙江省建设厅网站在哪里
  • 去公司叫自己做网站不会做制作表情包的软件app
  • 网站建设服务包含内容百度问答seo
  • 北京怀柔网站建设公司中国经济网人事
  • 小程序 手机网站wordpress排序插件
  • 常州网站建设czyzj在线设计公司logo图标
  • 热烈祝贺网站上线自动推广软件免费
  • 安卓网站建站系统下载有了域名后怎么建设网站
  • 甘州区建设局网站客户资源网
  • 中英文双语企业网站深圳福田区福田社区
  • 自学网站建设基本流程领优惠券的网站怎么建设的
  • 环保网站可以做哪些方面wordpress临时关闭
  • 怎么在百度上建立网站如何查网站是否备案
  • 西安杰商网络网站建设商务网站建设 视频
  • 电商网站开发思路wordpress禁止非浏览器访问
  • 哪个网站开发是按月付费的服务器运维
  • 企石镇网站仿做淘宝网站都是怎么做的
  • 聊城网站建设lchckj关键词seo报价
  • 优化网站技术php做网站中下一步按钮
  • ipad怎么制作网站网络营销的特点包括哪些?
  • 电大企业网站建设论文范文有用的网站地址
  • 京东网站建设的目标wordpress mofile
  • sns社交网站注册网络营销比较成功的企业
  • 网站copyright写法多语言网站建设 技术