Unity3D游戏开发之小地图的实现
2014-04-01 18:14
399 查看
今天我们来讲一下在Unity3D中如何实现小地图。首先,我们来一起看看最终实现的效果:
要实现小地图效果,需要实现对于小地图和角色的绘制,所以这里需要用到OnGUI()方法,我们一起来看代码:
要实现小地图效果,需要实现对于小地图和角色的绘制,所以这里需要用到OnGUI()方法,我们一起来看代码:
using UnityEngine; using System.Collections; public class CameraScript : MonoBehaviour { //定义小地图贴图 public Texture MapTexture; //定义角色标志贴图 public Texture PlayerTexture; //定义第三人称角色控制器 private GameObject m3rdPersonControl; public GameObject BulletPos; public GameObject Bullet; //定义角色位置 private float mPersonX; private float mPersonZ; //定义缩放比例 private float mScale; void Start () { //获取角色控制器 m3rdPersonControl=GameObject.Find("3rd Person Controller"); //获取角色位置 mPersonX=m3rdPersonControl.transform.position.x; mPersonZ=m3rdPersonControl.transform.position.z; //根据小地图和屏幕计算缩放比例 mScale=(200F/Screen.width)<(200F/Screen.height)?(200F/Screen.width):(200F/Screen.height); } void Update () { //刷新角色位置 mPersonX=m3rdPersonControl.transform.position.x; mPersonZ=m3rdPersonControl.transform.position.z; if(Input.GetMouseButtonDown(0)) { Vector3 Target=Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y, 1)); Vector3 Dir=Target-m3rdPersonControl.transform.position; Instantiate(Bullet,BulletPos.transform.position,Quaternion.identity); } } void OnGUI() { //在屏幕右上角绘制200x200的小地图贴图 GUI.DrawTexture(new Rect(Screen.width-200,0,200,200),MapTexture); //以小地图左下角为原点的右手系,角色标示宽度和高度为20 GUI.DrawTexture(new Rect(Screen.width-200+mPersonX*mScale+20,200-mPersonZ*mScale-20,20,20),PlayerTexture); } }在上述代码中,我们设定小地图的宽度和高度均为200,设定角色标示物的宽度和高度均为20,并规定地图向上为正北方向。我们在初始化方法Start()方法中获取一个角色控制器,以获取角色的位置,并根据小地图和屏幕计算出缩放比例。在OnGUI()方法中我们根据缩放比例来绘制小地图和角色标示物。而在Update()方法中我们刷新角色的位置。这就是今天的内容啦,希望大家喜欢啊!
相关文章推荐
- Unity3D游戏开发之小地图的实现
- Unity3D游戏开发之再话小地图的实现
- [Unity3D]Unity3D游戏开发之再话小地图的实现
- Unity3D游戏开发之小地图的实现
- Unity3D游戏开发之小地图的实现
- [Unity3D]Unity3D游戏开发之Logo渐入渐出效果的实现
- javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
- cocos2d-x-3.2塔防游戏开发1:背景,地图,obj,产生移动NPC的实现
- javascript游戏开发之《三国志曹操传》零部件开发(五)可移动地图的实现
- ArcGIS Server 开发之鹰眼地图的实现
- 【unity3d游戏开发之基础篇】利用射线实现鼠标控制角色转向和移动(角色移动一)
- Unity3D游戏开发之MatchTarget实现角色攀爬效果
- [Unity3D]Unity3D游戏开发之鼠标滚轮实现放大缩小
- Unity3D游戏开发之在Unity3D中实现视频播放
- iOS版移动和地图与高德地图差异化开发实现
- [Unity3D]Unity3D游戏开发之基于ITween实现寻路功能
- [Unity3D]Unity3D游戏开发之《愤怒的小鸟》弹弓实现
- Android开发之高德地图实现定位
- GeoServer地图开发解决方案(五):基于Silverlight技术的地图客户端实现
- 【Silverlight】Bing Maps开发应用与技巧四:自定义MapMode实现地图访问限制 推荐