一键筛选场景中挂载指定光照贴图的游戏物体

前情概要

提示:此项目发布于WebGL端 需要减小包体大小,提高加载速度

因光照贴图的文件太大,所以使用了AssetBundle来进行场景中资源的加载,但是在加载光照贴图的时候,发现了一个问题,就是需要指认哪些游戏物体,是使用此光照贴图的,不然光照贴图加载出来,会出现错误的情况

使用下面的脚本,即可实现一键筛选场景中挂载了特定的光照贴图

代码部分

using UnityEngine;

public class FindObjectsWithLightmap : MonoBehaviour
{
    public Texture2D targetLightmap;

    [ContextMenu("绑定")]
    void AddTagInObject( )
    {
        GameObject[] sceneObjects = GameObject.FindObjectsOfType<GameObject>();

        foreach (GameObject obj in sceneObjects)
        {
            Renderer renderer = obj.GetComponent<Renderer>();

            if (renderer != null && renderer.lightmapIndex != -1)
            {
                // 获取物体的光照贴图
                Texture2D lightmap = LightmapSettings.lightmaps[renderer.lightmapIndex].lightmapColor;

                // 检查光照贴图是否匹配目标贴图
                if (lightmap == targetLightmap)
                {
                    obj.tag = "Lightmap3";//操作光照贴图物体的标签Tag
                    // 物体使用了目标光照贴图
                    Debug.Log("Object " + obj.name + " uses the target lightmap.");
                }
            }
        }
    }
}

如何使用

可以新建一个空物体,然后把此脚本挂载上。
把想查询的光照贴图放入 点击下图的按钮即可完成
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_济南橙子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值