Unity 制作RPG地图2(自己控制地图上图标)
上一次用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(自己控制地图上图标)的更多相关文章
- Unity 制作RPG小地图
效果图: 最近公司要制作小地图,搜索网上的文章没找到有什么小实例,=.=直接上步骤: 制作小地图步骤: 1. 人物头顶有一个面板呈现人物图标 2. 有一个摄像机在主角头顶!(Target Textur ...
- 【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈
原文:[百度地图API]如何制作一张魔兽地图!!--CS地图也可以,哈哈哈 摘要: 你玩魔兽不?你知道如何做一张魔兽地图不?! 快来看此文吧! ---------------------------- ...
- Android百度地图开发03之地图控制 + 定位
前两篇关于百度地图的blog写的是,一些基本图层的展示 和 覆盖物的添加+地理编码和反地理编码. 接下来,这篇blog主要说一些关于地图控制方面的内容和定位功能. 百度地图提供的关于地图的操作主要有: ...
- 百度地图之UI控制
在本文中主要介绍百度地图UI控制功能,即控制地图是否有缩放.平移.双击放大.旋转.俯视的功能以及控制是否显示内置缩放组件.指南针位置等.在文中采用标签监听使每个控制功能的方法见名知义,代码原型来源百度 ...
- 【Silverlight】Bing Maps学习系列(三):如何控制地图
[Silverlight]Bing Maps学习系列(三):如何控制地图 本篇主要介绍如何对地图的一些常用控制操作,包括地图加载模式.根据精度和纬度定位.变焦程度等. 一.动态设置地图加载模式 在本系 ...
- 使用ESMap的地图平台开发三维地图
本文简单的介绍使用ESmap的SDK开发(DIY自己地图的)一个地图的过程.若有不足,欢迎指正. 一.创建地图 只需四步,从无到有,在浏览器中创建一个自己的三维地图,炫酷到爆! 第一步:引入ESM ...
- Unity制作地形的常用插件之GAIA
用Unity制作大型游戏少了地形制作怎么行,用原生的Unity工具制作地形效率较低而且也不甚美观,后期运行的效率也得不到保证.下面推荐的专业地形制作工具可以帮助开发者解决地形制作的相关问题. 打开Un ...
- 使用Unity制作游戏关卡的教程(三)
转自:http://gamerboom.com/archives/75593 作者:Matthias Zarzecki 本文是“使用Unity制作<The Fork Of Truth>的关 ...
- 【高德地图API】从零开始学高德JS API(一)地图展现——仙剑地图,麻点图,街景,室内图
原文:[高德地图API]从零开始学高德JS API(一)地图展现——仙剑地图,麻点图,街景,室内图 摘要:关于地图的显示,我想大家最关心的就是麻点图,自定义底图的解决方案了吧.在过去,marker大于 ...
随机推荐
- UIScreen类
CGRect screenBounds = [ [UIScreen mainScreen]bounds];//返回的是带有状态栏的Rect NSLog(@"%@", NSStrin ...
- ASP.NET MVC 之表格分页
简单效果图:(框架:MVC+NHibernate) 要点: (1)首先建立表格分页Model(GridModel.cs) (2)然后建立数据展示页(PageCloth.cshtml) (3)再建分页版 ...
- git学习笔记 (三)
学习地址 http://www.liaoxuefeng.com http://www.cnblogs.com/renkangke/archive/2013/05/31/conquerAndroid.h ...
- PHP学习笔记二十五【类的继承】
<?php //定义父类 class Stu{ public $name; protected $age; protected $grade; private $address;//私有变量不会 ...
- TransactionScrope 2
继上一篇文章TransactionScrope 在做相应的变动时,发现可以重现ORA-14450错误,如: List<Thread> ls = new List<Thread> ...
- java进程
package com.process; public class ProcessTest { public static void main(String[] args) { new Proce ...
- ubuntu 16.04 下载源
修改适当的更新源 可以使得aptget安装的速度变得快很多 ubuntu的更新源在 /etc/apt/sources.list 修改更新源 sudo vi /etc/apt/sources.list ...
- 写一个Windows上的守护进程(5)文件系统重定向
写一个Windows上的守护进程(5)文件系统重定向 在Windows上经常操作文件或注册表的同学可能知道,有"文件系统/注册表重定向"这么一回事.大致来说就是32位程序在64位的 ...
- WordPress设置固定链接和邮件提醒遇到的问题
固定链接1.WordPress根目录下有一个.h...文件,记录文章链接类型对应的配置,要保证该文件的可写全权限:2.设置Apache2的rewrite模块启动,/etc/apache2/modle- ...
- php 大流量网站访问
1:确认服务器硬件能否支持当前流量 2:数据库优化,用到什么字段查什么字段,减轻查询负担. 3:静态化,缓存,减少连库操作. 4:禁止外部盗链,减轻负载压力. 5:控制文件下载大小,尽量不超过2M,有 ...