小编这次要给大家分享的是用实例分析Unity如何制作小地图和方向导航,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
创新互联公司专注于澄海企业网站建设,响应式网站开发,商城系统网站开发。澄海网站建设公司,为澄海等地区提供建站服务。全流程定制网站开发,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务一、unity方向导航制作
设计要求是方向导航随着鼠标旋转转换方向,效果图如下:
具体的实现方法主要有两个步骤,分别为UI设计和脚本编写。我的设计思路是这个控件分为两层,第一层为东西南北指示层,第二层为图标指示层,这里我的图标采用圆形图标,方向指示这里采用控制图标旋转的方式实现,层级关系如下:
首先创建父节点1,然后在父节点下创建子节点2,3;最后调整好位置。
第二步脚本编写,脚本如下:
using UnityEngine; using System.Collections; using UnityEngine.UI; public class shijiao : MonoBehaviour { public GameObject Gcanvas; public GameObject UIzhinanpicture; public GameObject Terren; public GameObject SMAP; //public GameObject bnt=GameObject.Find("Button"); //方向灵敏度 public float sensitivityX = 10F; public float sensitivityY = 10F; //上下大视角(Y视角) public float minimumY = -60F; public float maximumY = 60F; float rotationY = 0F; static public bool ifcanvas; void Update() { if(Input.GetMouseButton (0)){ //按住鼠标左键才能调节角度,根据鼠标移动的快慢(增量), 获得相机左右旋转的角度(处理X) float rotationX = transform.localEulerAngles.y + Input.GetAxis ("Mouse X") * sensitivityX; //根据鼠标移动的快慢(增量), 获得相机上下旋转的角度(处理Y) rotationY += Input.GetAxis ("Mouse Y") * sensitivityY; //角度限制. rotationY小于min,返回min. 大于max,返回max. 否则返回value rotationY = Mathf.Clamp (rotationY, minimumY, maximumY); //总体设置一下相机角度 transform.localEulerAngles = new Vector3 (-rotationY, rotationX, 0); UIzhinanpicture.transform.localEulerAngles = new Vector3(0,0,- rotationX); } } }
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。