Unity小地图制作
来源:互联网 发布:java时间戳转换成小时 编辑:程序博客网 时间:2024/04/28 02:20
(1)如果没有小地图,可以在编辑场景中调整一个鸟瞰摄像机,刚好可以看到整个地形场景(最好不要大了或者小了),然后使用这张图片作为小地图的背景图。
(2)在没有地形图的情况下,可以直接在屏幕上绘制一个地形图,然后通过比例计算主角在地形位置比例与在地图上的位置,然后在地图上绘制一个小图标来标识主角就行了。
本文中:用鸟瞰视角截了一个图作为地形图,用一个小圆圈图片标识主角,下面给出代码:
public Texture map;//小地形图 public Texture jueseTexture;//标识角色的图片 float juesePosX = 0; float juesePosY = 0; public GameObject player;//角色 public GameObject plane;//地形 float planeWidth;//地形的宽 float planeHeight;//地形的高 void Start() { //获取地形的宽高 planeWidth = plane.GetComponent<MeshFilter>().mesh.bounds.size.x * plane.transform.localScale.x; planeHeight = plane.GetComponent<MeshFilter>().mesh.bounds.size.z * plane.transform.localScale.z; print(planeWidth + ", "+planeHeight); } void OnGUI(){//此时的小地图在屏幕的左上方 GUI.DrawTexture(new Rect(0, 0, map.width, map.height), map); GUI.DrawTexture(new Rect(juesePosX, juesePosY, 10, 10), jueseTexture); } void Update() { //根据palyer在plane的比例关系,映射到对应地图位置。 juesePosX = map.width * player.transform.position.x / planeWidth + map.width / 2; juesePosY = map.height * (-player.transform.position.z) / planeHeight + map.height / 2; }
注释:其中的player.transform.position的x和z的值可以修改,当然要根据小地图摆放的位置:如右上方的话,代码如下:
void OnGUI() { //屏幕的右上方 GUI.DrawTexture(new Rect(Screen.width-map.width, 0, map.width, map.height), map); GUI.DrawTexture(new Rect(Screen.width-juesePosX, juesePosY, 10, 10), playerTexture); } void Update() { //根据palyer在plane的比例关系,映射到对应地图位置 juesePosX = map.width * (-player.transform.position.x) / planeWidth + map.width / 2; juesePosY = map.height * (-player.transform.position.z) / planeHeight + map.height / 2; }
当然还有一个就是在制作地形背景图的时候要与plane保持一直,如果plane是正方形,图片最好也是正方形,如果plane是非正方形,小地形图片也进行比例调整;如果要缩放最好是对图片进行等比例缩放,如画图工具中的保持纵横比的缩放;
0 0
- Unity小地图制作
- Unity小地图制作
- Unity小地图制作
- Unity 制作小地图
- unity小地图制作代码....
- unity菜鸟之小地图制作
- unity RPG小地图的制作
- Unity小地图制作(二)
- unity小地图制作和方向导航
- unity-使用 Camera 和 Render Texture 制作小地图
- 我的Unity(11)一点一滴 制作LOL小地图
- Unity 制作小地图(Minimap)系统 两种方法
- unity 从头开始制作类dota2小地图
- unity小地图代码
- Unity小地图
- unity创建小地图
- Unity3D-小地图制作
- 小地图的制作
- winfrom 控件显示悬浮提示框
- mapr- hadoop 更换坏掉的磁盘
- test
- 计数排序及优化
- Direct I/O
- Unity小地图制作
- away3d 4.1制作ipad版 高清汽车(解决目前大多数人出现白屏报错问题)
- PopupWindow在Editext中使用
- 初学Linux菜鸟级--ubuntu之加入搜狗输入法
- Ubuntu10.10(maverick) 更新源列表
- 工匠精神
- [Leetcode] Minimum Depth of Binary Tree (Java)
- C++ 算法库(1) 不修改内容的序列操作
- Linux内核学习笔记之系统启动(二)