上一次用Unity摄像机方式实现了地图的制作,现在介绍另一种实现地图的方式: 自己通过代码实现小地图NCP图标的显示和隐藏

制作地图的步骤:

1. 根据游戏人物的3D坐标转换成2D平面坐标,根据距离显示和隐藏游戏的坐标

2. 怪物实时判断与玩家的距离,小于到移动范围,就在小地图上创建Icon的显示

注意事项:

1. 人物移动前进和后退是(x,z)轴, 我们从游戏界面看到的图标是(x,y)轴

代码:

小地图类:

using UnityEngine;
using System.Collections; /// <summary>
/// 小地图
/// </summary>
public class MinMap : MonoBehaviour { public static MinMap _instance;
public GameObject iconPrefab; //小图标预设,根据不同的名字显示不同的图标 void Awake()
{
_instance = this;
} /// <summary>
/// 在小地图添加图标
/// </summary>
/// <param name="iconName"></param>
/// <returns></returns>
public GameObject AddIcon(string iconName)
{
GameObject go = NGUITools.AddChild(this.gameObject,iconPrefab);
go.GetComponent<UISprite>().spriteName = iconName;
return go;
} }

Icon类: (在小地图上添加图标,交给怪物和NCP自身)

using UnityEngine;
using System.Collections; public class MinMapItems : MonoBehaviour { public string iconName;
private GameObject minimapIconGO;
private Transform minmapTrans;
private Transform playerTrans; public float magnitudeX = ;
public float magnitudeZ = 7.5f; void Start()
{
minimapIconGO = MinMap._instance.AddIcon(iconName); //将怪物图标初始化到小地图显示
minmapTrans = minimapIconGO.transform; //怪物的小图标
playerTrans = GameObject.FindGameObjectWithTag("Player").transform; //获取主角transfrom } void FixedUpdate()
{
Vector3 offset = transform.position - playerTrans.position;
minmapTrans.localPosition = new Vector3(offset.x,offset.z,) * ; //localPosition和position的区别 //怪物超过一定范围,显示和隐藏地图图标
if (Mathf.Abs(offset.x) >= magnitudeX || Mathf.Abs(offset.z) >= magnitudeZ)
{
minimapIconGO.SetActive(false);
}
else
{
minimapIconGO.SetActive(true);
} //Debug.Log(offset.z); } void OnDestroy()
{
Destroy(this.minimapIconGO);
} }

源代码 :  http://yunpan.cn/cy8wW4eHQgHZH  提取码 3681

Unity 制作RPG地图2(自己控制地图上图标)的更多相关文章

  1. Unity 制作RPG小地图

    效果图: 最近公司要制作小地图,搜索网上的文章没找到有什么小实例,=.=直接上步骤: 制作小地图步骤: 1. 人物头顶有一个面板呈现人物图标 2. 有一个摄像机在主角头顶!(Target Textur ...

  2. 【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈

    原文:[百度地图API]如何制作一张魔兽地图!!--CS地图也可以,哈哈哈 摘要: 你玩魔兽不?你知道如何做一张魔兽地图不?! 快来看此文吧! ---------------------------- ...

  3. Android百度地图开发03之地图控制 + 定位

    前两篇关于百度地图的blog写的是,一些基本图层的展示 和 覆盖物的添加+地理编码和反地理编码. 接下来,这篇blog主要说一些关于地图控制方面的内容和定位功能. 百度地图提供的关于地图的操作主要有: ...

  4. 百度地图之UI控制

    在本文中主要介绍百度地图UI控制功能,即控制地图是否有缩放.平移.双击放大.旋转.俯视的功能以及控制是否显示内置缩放组件.指南针位置等.在文中采用标签监听使每个控制功能的方法见名知义,代码原型来源百度 ...

  5. 【Silverlight】Bing Maps学习系列(三):如何控制地图

    [Silverlight]Bing Maps学习系列(三):如何控制地图 本篇主要介绍如何对地图的一些常用控制操作,包括地图加载模式.根据精度和纬度定位.变焦程度等. 一.动态设置地图加载模式 在本系 ...

  6. 使用ESMap的地图平台开发三维地图

      本文简单的介绍使用ESmap的SDK开发(DIY自己地图的)一个地图的过程.若有不足,欢迎指正. 一.创建地图 只需四步,从无到有,在浏览器中创建一个自己的三维地图,炫酷到爆! 第一步:引入ESM ...

  7. Unity制作地形的常用插件之GAIA

    用Unity制作大型游戏少了地形制作怎么行,用原生的Unity工具制作地形效率较低而且也不甚美观,后期运行的效率也得不到保证.下面推荐的专业地形制作工具可以帮助开发者解决地形制作的相关问题. 打开Un ...

  8. 使用Unity制作游戏关卡的教程(三)

    转自:http://gamerboom.com/archives/75593 作者:Matthias Zarzecki 本文是“使用Unity制作<The Fork Of Truth>的关 ...

  9. 【高德地图API】从零开始学高德JS API(一)地图展现——仙剑地图,麻点图,街景,室内图

    原文:[高德地图API]从零开始学高德JS API(一)地图展现——仙剑地图,麻点图,街景,室内图 摘要:关于地图的显示,我想大家最关心的就是麻点图,自定义底图的解决方案了吧.在过去,marker大于 ...

随机推荐

  1. Linux usb子系统(二):USB设备驱动usb-skeleton.c

    usb驱动分为通过usbfs操作设备的用户空间驱动,内核空间的内核驱动.两者不能同时进行,否则容易引发对共享资源访问的问题,死锁!使用了内核驱动,就不能在usbfs里驱动该设备. 下面转载的一篇分析u ...

  2. jquery 弹出框 showDialog.js具体用法

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABWwAAAImCAIAAABID1T7AAAgAElEQVR4nO3d329c52Hgff1HvPCNLw

  3. 在eclipse中使用svn

    作为一名程序员,svn是比较常用也必然会使用到的一个工具,它的全拼为Subversion,是一个开源的版本控制系统,可以对每次修改的文件和目录进行准确记录,以便在使用的时候及时提取.本文主要介绍如何在 ...

  4. Go语言程序的状态监控

    Go是很实在的编程语言,从一开始就提供了很详细的运行状态信息.产品上线后的调优和排查疑难杂症都得靠这些状态信息.这边总结一些我们项目里用到的状态监控手段. pprof Go自带了一个pprof工具,这 ...

  5. [置顶] 创建GitHub技术博客全攻略

    [置顶] 创建GitHub技术博客全攻略 分类: GitHub2014-07-12 13:10 19710人阅读 评论(21) 收藏 举报 githubio技术博客网站生成 说明: 首先,你需要注册一 ...

  6. 前端--关于javascript对象

    在javascript中对象是一种基本的数据类型,在数据结构上是一种散列表,可以看作是属性的无序集合,除了原始值其他一切都是对象.它可以用来表示现实世界中或者我们大脑中抽象出来的客体,这和其他面向对象 ...

  7. 面试总结之html+css

    最近面试了一些公司,和技术总监聊了一些前端技术方面的内容.回来之后我总结了一下,大致可以分为三个模块:第一.Html与css 方面:第二.浏览器解析方面:第三.js方面.打算,分为三篇博文,根据自己的 ...

  8. Global.asax使用2

    ASP.NET中利用Application和Session统计在线人数.历史访问量 先来简单说一下ASP.NET中的Application和Session 下图是我们非常熟悉的Web应用程序的结构: ...

  9. 几句话弄清楚Java参数传值还是传引用

    最近刷题做了一些算法题,对于在递归函数调用的时候什么时候传入值,什么时候传入引用有疑问,在网上搜索了一下,得出了一下三条总结: 1.对象就是传引用 2.原始类型就是传值 3.String,Intege ...

  10. iOS-OC-基础-NSDate常用方法

    NSDate常用方法 /*=============================NSDate日期类的使用=============================*/ // 获取当前时间,获得的时 ...