今天我们来讲一下在Unity3D中如何实现小地图。首先,我们来一起看看最终实现的效果:

要实现小地图效果,需要实现对于小地图和角色的绘制,所以这里需要用到OnGUI()方法,我们一起来看代码:

[csharp]  view plain copy print ?
  1. using UnityEngine;
  2. using System.Collections;
  3. public class CameraScript : MonoBehaviour {
  4. //定义小地图贴图
  5. public Texture MapTexture;
  6. //定义角色标志贴图
  7. public Texture PlayerTexture;
  8. //定义第三人称角色控制器
  9. private GameObject m3rdPersonControl;
  10. public GameObject BulletPos;
  11. public GameObject Bullet;
  12. //定义角色位置
  13. private float mPersonX;
  14. private float mPersonZ;
  15. //定义缩放比例
  16. private float mScale;
  17. void Start ()
  18. {
  19. //获取角色控制器
  20. m3rdPersonControl=GameObject.Find("3rd Person Controller");
  21. //获取角色位置
  22. mPersonX=m3rdPersonControl.transform.position.x;
  23. mPersonZ=m3rdPersonControl.transform.position.z;
  24. //根据小地图和屏幕计算缩放比例
  25. mScale=(200F/Screen.width)<(200F/Screen.height)?(200F/Screen.width):(200F/Screen.height);
  26. }
  27. void Update ()
  28. {
  29. //刷新角色位置
  30. mPersonX=m3rdPersonControl.transform.position.x;
  31. mPersonZ=m3rdPersonControl.transform.position.z;
  32. if(Input.GetMouseButtonDown(0))
  33. {
  34. Vector3 Target=Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y, 1));
  35. Vector3 Dir=Target-m3rdPersonControl.transform.position;
  36. Instantiate(Bullet,BulletPos.transform.position,Quaternion.identity);
  37. }
  38. }
  39. void OnGUI()
  40. {
  41. //在屏幕右上角绘制200x200的小地图贴图
  42. GUI.DrawTexture(new Rect(Screen.width-200,0,200,200),MapTexture);
  43. //以小地图左下角为原点的右手系,角色标示宽度和高度为20
  44. GUI.DrawTexture(new Rect(Screen.width-200+mPersonX*mScale+20,200-mPersonZ*mScale-20,20,20),PlayerTexture);
  45. }
  46. }

在上述代码中,我们设定小地图的宽度和高度均为200,设定角色标示物的宽度和高度均为20,并规定地图向上为正北方向。我们在初始化方法Start()方法中获取一个角色控制器,以获取角色的位置,并根据小地图和屏幕计算出缩放比例。在OnGUI()方法中我们根据缩放比例来绘制小地图和角色标示物。而在Update()方法中我们刷新角色的位置。这就是今天的内容啦,希望大家喜欢啊!

转载,本文出处:原文出处

Unity3D游戏开发之小地图的实现相关推荐

  1. Unity3D游戏开发之仿仙剑奇侠传一2D游戏 (一)

    今天要和大家分享的是基于Unity3D开发2D游戏,博主一直钟爱于国产武侠RPG,这个我在开始写Unity3D游戏开发系列文章的时候就已经说过了,所以我们今天要做的就是利用Unity3D来实现在2D游 ...

  2. Unity3D游戏开发之仿仙剑奇侠传角色控制效果

    在上一篇文章中,我们从Unity3D为我们提供的相机原型实现了非编码式的小地图,如果结合GUI在这个小地图下面绘制一些背景贴图,相信整体的效果会更好一些.博主希望这个问题大家能够自己去做更深入的研究, ...

  3. [Unity3D]Unity3D游戏开发之怪物AI

    大家好,欢迎大家关注由我为大家带来的Unity3D游戏开发系列文章,我的博客地址为:http://blog.csdn.net/qinyuanpei. 在上一篇文章中,我们基本上实现了一个小地图的功能, ...

  4. Unity3D游戏开发之使用Unity3D开发2D游戏(二)(2DTookit插件亲测)

    大家好,今天博主继续为大家带来Unity3D游戏开发系列文章,我们接着在上一篇文章中最后留下的那几个问题来讲解Unity3D游戏开发的相关知识.在上一篇文章最后,我们留了这样几个问题: 1.人物范围控 ...

  5. android+Unity3D游戏开发之简单的物体运动

    android+Unity3D游戏开发之简单的物体运动 其实这篇也是转载的,真的感觉对于我们初学者来说很不错的,不信你看看嘛;原创链接:http://bbs.9ria.com/thread-98192 ...

  6. 从一点儿不会开始——Unity3D游戏开发学习(一)

    一些废话 我是一个windows phone.windows 8的忠实粉丝,也是一个开发者,开发数个windows phone应用和两个windows 8应用.对开发游戏一直抱有强烈兴趣和愿望,但奈何 ...

  7. Unity3D游戏开发之自由视角下的角色控制

    秦元培的博客:http://blog.csdn.net/qinyuanpei/article/details/39125353 1,[Unity3D]Unity3D游戏开发之角色控制漫谈 2,[Uni ...

  8. Unity3D游戏开发之邂逅Unity3D

    从今天起,博主决定要在毕业前把大学里想学的东西都学完.所以,从今天起,大家将看到由我为大家带来的Unity3D系列文章,让我们一起来学习Unity3D游戏开发吧! 在正式今天的文章之前,博主想简单介绍 ...

  9. Unity3D游戏开发介绍

    Unity3D游戏开发介绍 Unity3D Unity是实时3D互动内容创作和运营平台.包括游戏开发.美术.建筑.汽车设计.影视在内的所有创作者,借助Unity将创意变成现实. Unity平台提供一整 ...

最新文章

  1. 遇到网络问题你是怎么解决的?安琪拉有二招
  2. p1口输入输出实验c语言程序,51单片机P1口输入输出实验实验报告.doc
  3. 谈谈HTML5中的history.pushSate方法,弥补ajax导致浏览器前进后退无效的问题
  4. 使用NVelocity自动生成Favorite收藏夹的导航页面
  5. 机器学习之 weka学习(六)最大内存
  6. Orchard之生成新模板
  7. java逻辑运算符_Java逻辑运算符
  8. 一文带你轻松搞懂事务隔离级别(图文详解)
  9. 柔性体没有应变_边坡防护终结篇!柔性防护系统(主被动网)知识总结!
  10. OpenHarmony 1.1.0 LTS 版本发布,十六大性能全面提升
  11. SQL:两种获取时间类型日期部分的方法
  12. C# 中关于汉字与16进制转换的代码
  13. 2021-09-08推荐系统 简述DeepFM模型
  14. PSP3000/2000V3用5.03-GEN-C系统安装使用教程
  15. 【百科】有关地震的一些知识
  16. SpringBoot -- 抱团学习社区系统项目实战
  17. VS2010“未能正确加载包”问题解决方法小汇
  18. python背景怎么自定义铃声_iPhone —— 如何自制铃声(图文)
  19. MVP2006成都聚会图片
  20. 求最小公倍数利用数组java_菜鸟级求解:Java求1到20的最小公倍数

热门文章

  1. 中国联通网上营业厅,12306式的网站?
  2. 据说加入9E技术员家园,装机设首页。月赚几千
  3. cookie设置为关闭浏览器后清除,打开后cookie还是没有清除
  4. axios 跨域携带cookie设置
  5. 【openGL2021版】阶段展示
  6. Windows下使用OpenSSL生成自签证书(亲测)
  7. [附源码]JAVA毕业设计咖啡馆管理系统(系统+LW)
  8. 【前端技巧】实现点击复制文本内容方法
  9. 实际例子描述和分析“猎豹抢票跨站推荐功能跨站有票刷不到”的疑似bug
  10. 美国老爸辅导作业气到飙中文?三大教育科技模式来帮你!