位置: 编程技术 - 正文

小地图的实现与远近景的切换(小地图的主要作用是观察队友的大概位置)

编辑:rootadmin
/// <summary>/// Minimap camera./// This script use to control minimap camera/// </summary>using UnityEngine;using System.Collections;public class MinimapCamera : MonoBehaviour {public static int zoomLevel; //zoom levelpublic static MinimapCamera Instance; //declare this to global script//Private variableprivate int zoomCurrent;[HideInInspector]public Transform Target;void Start(){//Setting Default Value//zoomLevel与zoomCurrent 控制小地图视角的缩放zoomLevel = 3;zoomCurrent = zoomLevel;//实现摄像机跟随主角Instance = this;GameObject hero;hero = GameObject.FindGameObjectWithTag("Player");//Target 为Player Target = hero.GetComponent<Transform>();}// Update is called once per framevoid Update () {//Follow player//摄像机获取player的坐标,实现小地图的摄像机跟随效果;transform.position = new Vector3(Target.position.x,transform.position.y,Target.position.z);ZoomManage ();}//控制小地图的最大和最小缩放程度;void ZoomManage (){//Check zoom limit// 当zoomLevel 小于0时,将其&#;设为0,控制在最小缩放的&#;为0if(zoomLevel < 0){zoomLevel = 0;}else if(zoomLevel > 4){zoomLevel = 4;}}//通过zoomLevel&#;得大小 来控制小地图视角大小的缩放,当zoomLevel小于zoomCurrent时,说明地图要缩小,此时相机的orthographicSize&#;要增加;public void ZoomUpdate(){if(zoomLevel < zoomCurrent){this.GetComponent<Camera>().orthographicSize &#;= 3;zoomCurrent = zoomLevel;}else// 当zoomLevel大于zoomCurrent时,说明地图要放大,此时相机的orthographicSize&#;要缩小;if(zoomLevel > zoomCurrent){this.GetComponent<Camera>().orthographicSize -= 3;zoomCurrent = zoomLevel;}}}

推荐整理分享小地图的实现与远近景的切换(小地图的主要作用是观察队友的大概位置),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:小地图的实现与运用,小地图是什么意思,小地图的实现与设计,什么是小地图,小地图绘制,小地图的主要作用,小地图的实现与运用,小地图的实现与实践,内容如对您有帮助,希望把文章链接给更多的朋友!

小地图的实现与远近景的切换(小地图的主要作用是观察队友的大概位置)

/// <summary>/// Minimap./// This script use to call minimap on top-right screen/// </summary>using UnityEngine;using System.Collections;public class Minimap : MonoBehaviour {private Vector2 defaultScreenRes; //Screen Resolution[System.Serializable]public class GUISetting{public Vector2 position;public Vector2 size;public Texture2D[] texture;}[System.Serializable]public class LabelSetting{public Vector2 position;public GUIStyle labelStyle;}[System.Serializable]public class MinimapSetting{public Vector2 position;public Vector2 size;public Texture texture;public Material renderMaterial;}[System.Serializable]public class ButtonSetting{public Vector2 position;public Vector2 size;public GUIStyle buttonStlye;}public GUISetting frameMap,mapNameBar; //GUI settingpublic MinimapSetting minimap; //Minimap settingpublic LabelSetting mapName; //Map name setting//引用 ButtonSetting 类,所有的图标都在 ButtonSetting里实实例化,在这个类里加载到界面;public ButtonSetting zoomInBt,zoomOutBt; //button setting// Use this for initializationvoid Start () {defaultScreenRes.x = ; //declare max screen ratiodefaultScreenRes.y = ; //declare max screen ratio}void OnGUI (){if(!GameSetting.Instance.hideMinimap){// Resize GUI Matrix according to screen size ResizeGUIMatrix();//Draw MinimapGraphics.DrawTexture(new Rect(minimap.position.x,minimap.position.y,minimap.size.x ,minimap.size.y),minimap.texture,minimap.renderMaterial);//Draw MinimapFrameGUI.DrawTexture(new Rect(frameMap.position.x,frameMap.position.y,frameMap.size.x,frameMap.size.y),frameMap.texture[0]);//Draw Map name barGUI.DrawTexture(new Rect(mapNameBar.position.x,mapNameBar.position.y,mapNameBar.size.x,mapNameBar.size.y),mapNameBar.texture[0]);TextFilter.DrawOutline(new Rect(mapName.position.x ,mapName.position.y, , ),Application.loadedLevelName,mapName.labelStyle,Color.black,Color.white,2f);//Draw zoom in button//GUI.Button():Make a single press button. The user clicks them and something happens immediately.if(GUI.Button(new Rect(zoomInBt.position.x,zoomInBt.position.y,zoomInBt.size.x,zoomInBt.size.y),"",zoomInBt.buttonStlye)){MinimapCamera.zoomLevel&#;&#;;MinimapCamera.Instance.ZoomUpdate();}//Draw zoom out buttonif(GUI.Button(new Rect(zoomOutBt.position.x,zoomOutBt.position.y,zoomOutBt.size.x,zoomOutBt.size.y),"",zoomOutBt.buttonStlye)){ //zoomLevel 减小,小地图视角要缩小;MinimapCamera.zoomLevel--;MinimapCamera.Instance.ZoomUpdate();}// Reset matrix after finish GUI.matrix = Matrix4x4.identity;}else{this.enabled = false;}}void ResizeGUIMatrix() { // Set matrix Vector2 ratio = new Vector2(Screen.width/defaultScreenRes.x , Screen.height/defaultScreenRes.y ); Matrix4x4 guiMatrix = Matrix4x4.identity; guiMatrix.SetTRS(new Vector3(1, 1, 1), Quaternion.identity, new Vector3(ratio.x, ratio.y, 1)); GUI.matrix = guiMatrix; }}

【unity资源管理】内存池 内存池思想:创建对象时,先检查内存池中是否有缓存对象,如果没有再创建新的。删除对象时,不立即销毁,缓存一段时间,避免重复创建,提升执

编辑器拓展 Menuitem usingUnityEngine;usingSystem.Collections;usingUnityEditor;publicclassMyEditorWindow:EditorWindow{[MenuItem(Window/MyWindow)]staticvoidAddWindow(){//创建窗口Rectrect=newRect(0,0,,);MyEditorWi

编辑器拓展 CustomEditor usingUnityEngine;usingSystem.Collections;usingUnityEditor;//自定义样式的脚本[CustomEditor(typeof(CubeScript))]publicclassEditorTest:Editor{//自定义Inspector视图publicoverridevoidOnInspect

标签: 小地图的主要作用是观察队友的大概位置

本文链接地址:https://www.jiuchutong.com/biancheng/369359.html 转载请保留说明!

上一篇:Unity2D Sprite 描边Shader(unity描边shader)

下一篇:【unity资源管理】内存池(unity项目中的资源)

  • 税后经营净利润怎么求
  • 银行手续费回单可以作为入账依据吗
  • 简易计税会计分录举例
  • 增值税销项税额账务处理
  • 增值税税控系统技术维护费怎么做账
  • 总公司和分公司可以在一个城市吗
  • 电子承兑对方拒绝签收
  • .申报表税源编码怎么填
  • 实发工资知道如何发放吗
  • 进项票错了但是销项票开出去了怎么办
  • 企业所得税的利润总额是利润表中的哪个数
  • 工程预付款增值税缴纳办法
  • 应收代位追偿款有没有明细科目
  • 失控发票进项税转出企业无法承担所得税怎么办
  • 招聘时开具的专用发票可以抵扣吗?
  • 预提 冲销
  • 不开票收入怎么报税
  • 资金筹集业务核算实训心得体会
  • 补缴的增值税可以计入以前年度损益调整
  • 月销售额3万以下免征
  • 财务费用余额在借方是正数还是负数
  • 个人财产转让所得在哪里申报
  • 非金融企业之间的借款合同要交印花税吗
  • 生产车间的各种费用
  • 如何备份电脑系统到另外一个硬盘
  • php封装composer包
  • php中文乱码解决
  • 收到发票已入账什么意思
  • 代垫费用的进项怎么抵扣
  • 应收账款周转天数减少说明什么
  • php的数组函数
  • 小规模纳税人多少钱不用交税
  • 劳务报酬所得缴纳时间
  • 格里姆火山
  • PHP:mcrypt_ecb()的用法_Mcrypt函数
  • 销售商品怎么做会计分录呢
  • 发包工程补付工程款分录
  • 本单位生产的水泥属于
  • 增值税发票开错了可以退吗
  • 公司车辆缴纳车船税需要什么资料
  • laravel入门与实战:构建主流php应用开发框架
  • typescript instanceof
  • shell中put命令
  • php array_walk_recursive 使用自定的函数处理数组中的每一个元素
  • 发现以前年度损益调整怎么记账
  • 你必须了解的最大的问题
  • 财政拨款结余明细科目编码
  • 个税系统经营所得人员怎样添加
  • 合同取得成本的账务处理
  • sql server 创建数据表状态1第三行语法错误怎么回事
  • 盈余公积提取是什么意思
  • 出口佣金账务处理
  • 某企业福利部门
  • 债权投资有哪些科目
  • 购买商品加包装怎么入账
  • 运杂费计入什么会计科目
  • 新担保法2021和担保期限
  • 自产的产品作为福利增值税
  • 职工教育经费住宿费用可以抵扣吗
  • 建账基本要求
  • xp系统远程桌面设置
  • win8怎么添加打印机到电脑上
  • ubuntu搜索工具
  • WIN7系统安装
  • 如何卸载win8系统
  • PQIBrowser.exe是什么进程 PQIBrowser进程查询
  • windows 8怎么样
  • jquery虚拟dom
  • jquery的实现原理
  • 基于JAVASCRIPT实现的可视化工具是
  • shell 比较大小
  • 进入dos命令行
  • nodejs 加解密
  • linux shell脚本攻略(第3版)
  • jquery中的css方法
  • android 加载大量图片
  • js实现的功能
  • 王军调研地税局的职务
  • 陕西省机构改革方案获批
  • 四川税控
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设