`
alpha3171
  • 浏览: 6970 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

收集的两种小地图脚本

    博客分类:
  • U3D
 
阅读更多
不知道时效如何,或者是什么版本,暂未测试
unity3d---小地图
终于把小地图做出来了哈哈,记录一下

public var worldRefObj : Transform;//场景侦测参考物体;

public var worldPObj : Transform;//场景侦测物体;

public var mapBg : Texture2D;//地图背景;

public var mapPe : Texture2D;//指针背景;

private var mapPos : Vector2;

private var angle : float;//指针旋转

private var mapPeSize;//指针大小

function Update()
{
var worldPos = Vector2(worldPObj.transform.position.x - worldRefObj.transform.position.x,worldPObj.transform.position.z - worldRefObj.transform.position.z);

var worldRefObjSize = Vector2(worldRefObj.transform.collider.size.x,worldRefObj.transform.collider.size.z);

var mapBgSize = Vector2(mapBg.width,mapBg.height);

mapPeSize = Vector2(mapPe.width,mapPe.height);

angle = worldPObj.rotation.eulerAngles.y;

mapPos = Vector2(worldPos.x * mapBgSize.x/worldRefObjSize.x-mapPeSize.x/2, worldPos.y * mapBgSize.y/worldRefObjSize.y+mapPeSize.x/2);

//Debug.Log(mapPeSize);
}

function OnGUI()
{
GUI.DrawTexture(Rect(0,0,mapBg.width,mapBg.height),mapBg);

GUIUtility.RotateAroundPivot (angle, Vector2(mapPos.x+mapPeSize.x*0.5,-mapPos.y+mapPeSize.y*0.5));

Debug.Log(mapPeSize);

GUI.DrawTexture(Rect(mapPos.x,-mapPos.y,mapPe.width,mapPe.height),mapPe);
}



009-04-01 11:27:56|  分类: 虚拟现实(vr) |字号 订阅
代码:

@script ExecuteInEditMode()

public var blip : Texture; //定義一個指針文件代表角色
public var radarBG : Texture; //地圖背景圖片,我直接用場景里我創建的render texture

public var centerObject : Transform; //選擇角色的物體的位置信息
public var mapScale = 0.3; //地圖縮放
public var mapCenter = Vector2(50,50); //地圖中心

function OnGUI () {

bX=centerObject.transform.position.x * mapScale;
bY=centerObject.transform.position.z * mapScale;
  
bX=centerObject.transform.position.x * mapScale;
bY=centerObject.transform.position.z * mapScale;
  
GUI.DrawTexture(Rect(mapCenter.x-32,mapCenter.y-32,64,64),radarBG);
// 上面的mapCenter.x-32是地圖的x位置,mapCenter.y-32是y位置,64,64是地圖的大小

DrawBlipsForEnemies();
}
function DrawBlipsForCows(){

var gos : GameObject[];
gos = GameObject.FindGameObjectsWithTag("Cow");

var distance = Mathf.Infinity;
var position = transform.position;

for (var go : GameObject in gos)   {

       drawBlip(go,blip);
}
}
function drawBlip(go,aTexture){

centerPos=centerObject.position;
extPos=go.transform.position;

dist=Vector3.Distance(centerPos,extPos);

dx=centerPos.x-extPos.x;
dz=centerPos.z-extPos.z;

deltay=Mathf.Atan2(dx,dz)*Mathf.Rad2Deg - 270 - centerObject.eulerAngles.y;

bX=dist*Mathf.Cos(deltay * Mathf.Deg2Rad);
bY=dist*Mathf.Sin(deltay * Mathf.Deg2Rad);

bX=bX*mapScale;
bY=bY*mapScale;

if(dist<=200){

   GUI.DrawTexture(Rect(mapCenter.x+bX,mapCenter.y+bY,2,2),aTexture);
}
}
function DrawBlipsForEnemies(){

var gos : GameObject[];
gos = GameObject.FindGameObjectsWithTag("Enemy");

var distance = Mathf.Infinity;
var position = transform.position;

for (var go : GameObject in gos)   {

drawBlip(go,blip);
}
}
後半部份自己慢慢理解下,存為js文件即可使用

出处web3d虚拟神话论坛 http://bbs.vrsh.cn

分享到:
评论

相关推荐

    腾讯地图、微信小程序、轨迹、路线图、marker标记点

    在IT行业中,微信小程序是一种轻量级的应用开发平台,它允许开发者快速构建可以在微信内运行的应用。本项目涉及的是利用腾讯地图服务在微信小程序中实现轨迹和路线图的展示,以及使用marker标记点来突出特定位置。...

    校园电子地图

    - 地图测距功能:用户可以在地图上任意两点之间进行距离测量,这对于规划路线或了解校园面积等非常有用。 实现这些功能时,需要涉及到一些编程技术,例如: - ActionScript编程:这是Flash的脚本语言,用于控制动画...

    我收集的谷歌地图API实例.doc

    `setCenter`方法接受两个参数:一个是表示地理位置的`GLatLng`对象,另一个是地图的缩放级别(本例中为13)。 #### 三、深入理解Google地图API的关键概念 ##### 1. 经度和纬度 在使用Google地图API时,地理位置...

    基于深度学习的轻量遥感图像车辆检测模型.pdf

    其次,遥感图像指的是使用传感器从远距离收集的地球表面信息的图像,常用于地理信息系统(GIS)分析、地图制作、环境监测等领域。车辆检测作为一种目标检测任务,目标是从图像中识别出车辆的位置并标记出来。 文档...

    小熊派bearpi案例对应的微信小程序源码

    首先,微信小程序是一种轻量级的应用开发框架,它允许开发者在微信环境中构建无需下载安装即可使用的应用。在这个案例中,“小熊派bearpi”是一个基于树莓派的小型开发板,主要用于物联网(IoT)项目。小熊派提供了...

    matlab开发-SurferGridimportexport

    本项目专注于从Golden Software的Surfer和Graph等应用程序导入和导出GS ASCII(GRD文件)格式,这是一种广泛用于地理信息系统(GIS)和科学计算的数据格式。 GRD文件是ASCII格式的栅格数据文件,存储了二维网格的...

    GIS论文 MapInfo与ArcView GIS 软件在线体分形分析中的应用.pdf

    本文探讨了MapInfo与ArcView GIS软件在进行线体分形分析中的应用,特别关注于如何利用这两种工具提高分析效率及准确性。分形分析是一种用于评估自然现象复杂性的数学方法,如海岸线、山脉边缘以及断裂带等地质结构的...

    网页设计试题.doc

    18. Fireworks的蒙版有两种类型:矢量蒙版和位图蒙版,用于隐藏和显示图像的特定部分。 19. Flash影片测试通常使用“控制&gt;测试影片”,但如果包含脚本,需先“控制&gt;发布预览”生成SWF文件再播放。 20. Dreamweaver...

    EWM_PPT_chap4_v1.1.ppt

    - **方法**:POST和GET两种方法,其中POST方法更为安全,适用于传输敏感信息。 - **MIME类型**:定义了发送给服务器的数据格式,默认为“application/x-www-form-urlencoded”。 这些知识点覆盖了网页设计中关于...

    cesium地形生成工具.rar

    Cesium支持的地形瓦片格式主要有两种:Quantized-Mesh和Heightmap-Tile。Quantized-Mesh格式是一种优化过的二进制格式,包含了地形的量化坐标和颜色信息,适用于大范围的地形渲染。而Heightmap-Tile格式则是基于PNG...

    Castalia用户手册

    - T-MAC与S-MAC:对比分析两种常用的MAC协议(T-MAC和S-MAC)的特性和应用场景。 - IEEE 802.15.4 MAC:详细介绍IEEE 802.15.4标准中的MAC协议,以及如何在Castalia中实现。 4. **路由协议**: - 路由层模块:...

    3115大气漂亮的旅游景点企业网站整站模板5329_企业网站模板PHP整站源码.zip.7z

    再者,".zip.7z"是两种常见的文件压缩格式。.zip是通用的压缩格式,可以包含多种类型的文件。而.7z则是7-Zip软件生成的压缩格式,以其高压缩率著称。在这里,两个压缩格式的叠加可能意味着文件被先用ZIP压缩,然后再...

    浅谈Python在地理国情普查数据处理中的应用.pdf

    Python是一种功能强大、简单易学的开源编程语言,具有很好的伸缩性,适用于大型项目或小型的临时程序(称为脚本)。它具有跨平台性、可移植性,并可嵌入到其他系统中,为地理国情普查的数据处理提供了极大的便利。 ...

    Circuitscape-for-ArcGIS

    4. **脚本和模板**:方便用户自定义工作流程和批量处理任务的 Python 脚本和 ArcGIS 模板。 **五、使用 Circuitscape-for-ArcGIS 的步骤** 1. 安装插件:将 `Circuitscape_for_ArcGIS` 解压后,按照提供的说明在 ...

    matlab克里金插值kriging.m.zip_handle9w9_kriging.m_matlab_matlab克里金插值_

    在IT领域,特别是数据分析和地理信息系统(GIS)中,克里金插值(Kriging Interpolation)是一种广泛应用的统计方法,用于估算空间数据的未知值。Matlab作为强大的数值计算和可视化工具,提供了实现克里金插值的手段...

    百度去BMR解决方案,百度云平台

    它将任务分解为大量的小任务进行并行处理,通过Map和Reduce两个主要阶段来完成数据处理任务。Map阶段负责对输入数据进行初步处理和分发,而Reduce阶段则负责汇总各个Map任务的结果,形成最终输出。 **1.1.3 应用...

Global site tag (gtag.js) - Google Analytics