Unity实现可调子屏幕(类小地图)效果

参考文章:Unity小地图的实现_伊蕾娜^_^的博客-CSDN博客_unity 小地图

Unity 小地图制作 - 腾讯云开发者社区-腾讯云

起因:自制软件在调下方电阻箱旋钮时,要一直观看右上角屏幕的示数。

稍微一放大摄像头两者就只能看见其一。

我想让仪器屏幕示数一直显示在显示屏上。变成这个亚子

 开一个空项目。新建一个示例圆柱和Camera并重命名为MiniCamera,移动MiniCamera直到能观察到圆柱顶(不用管Game面板显示的是哪一个Camera)

 在Project面板新建Render Texture(右键Create---Render Texture),重命名为MiniTexture

 点击MiniCamera,调整他的Inspector面板。

Projection模式换为Orthographic(由透视摄像机切换成正交摄像机,因为我只需要2D的效果)

将才新建的MiniTexture拖到Target Texture里(摄像机就把实时渲染的结果存储到这张纹理图中)

关掉Audio Listener

根据实际情况调整Size,让圆柱顶在MiniCamera里看起来大些

在 Hierarchy面板里新建一个Canvas,在其下建立一个Image(和Canvas在同一个子面板里),作为背景,调为透明,并调整Image至合适的位置(比如右上角)

 以防万一讲一下操作,点Hierarchy面板里刚新建的Image,在Inspector里点圈1处的Color,把圈2处的A拉到最低

 

 在Image上右键创建Raw Image

 把MiniTexture拖到Texture上

 此时Game面板上已经可以看到还凑合的子屏幕的效果了

接下来要控制子屏幕的缩放。直接再在Image上右键创建两个Bottom(我装了TextmeshPro)

 直接进行一个重命名的F2操作,确保顺序是RawImage在两个Bottom上面,不然子屏幕放大后会遮挡住按钮

 给Bottom上对应的图片 懒得做放大的图标就随便拿了个√图片凑一下  上面调大小下面塞图片

 如果懒得做图片,可以点开ButtonBig下的Text(TMP),在右侧的Text Input下输入加号“+”,下面的Font Size调大小。ButtonSmall用减号同理。不确定没有TextMeshPro行不行。反正我有就不管了,教程这么详细啰嗦就是为了方便自己回忆

 头秃,到了写Button脚本的时候了,在Project面板里右键新建C#Script 重命名为MiniC

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MiniC : MonoBehaviour
{
    void Start()
    {
        
    }
    void Update()
    {
        
    }
    public float pngMoveSpeed;
    public void OnClickBig()
    {
        Vector3 v3 = transform.localScale;
        transform.localScale = new Vector3(v3.x * 2f, v3.y * 2f, v3.z * 2f);
        transform.Translate(-transform.up * pngMoveSpeed);
        transform.Translate(-transform.right * pngMoveSpeed);
    }
    public void OnClickSmall()
    {
        Vector3 v3 = transform.localScale;
        transform.localScale = new Vector3(v3.x * 0.5f, v3.y * 0.5f, v3.z * 0.5f);
        transform.Translate(transform.right * pngMoveSpeed);
        transform.Translate(transform.up * pngMoveSpeed);
    }
}

 //直接全选--复制--自己的脚本--全选--粘贴--保存

 选择RawImage,把才抄的MiniC直接拖到Add Component 上

 脱完托完顺手设置一下Png Move Speed,自己调个合适的

 点Hierarchy面板里的ButtonBig,然后点OnClick() 下的小加号,增加一个点击响应事件

将RawImage拖到 None(Obje 的位置

 点 1 的位置

选OnClickBig()。ButtonSmall同理,选OnClickSmall()

 

 测试一下,点一点加号,还行,教程结束

猜你喜欢

转载自blog.csdn.net/weixin_59312879/article/details/126835289
今日推荐