解决AssetBundle包加载预制体时,Shader显示异常的问题

现象: 预制体上的粒子效果显示为紫色方块。

原因:shader在打成AB包后与指定平台产生相关性,Editor中无法正常读取。

解决办法:

  遍历所有加载的对象,重新赋值Shader

代码:

        //修正shader不正确的问题
        public void ShaderRecover(GameObject obj)
        {
            if (obj == null) return;

            Image[] images = obj.GetComponentsInChildren<Image>(true);
            for (int j = 0; j < images.Length; j++)
            {
                images[j].material.shader = Shader.Find(images[j].material.shader.name);
            }

            Renderer[] meshSkinRenderer = obj.GetComponentsInChildren<Renderer>(true);
            for (int i = 0; i < meshSkinRenderer.Length; i++)
            {   if (meshSkinRenderer[i].sharedMaterial == null)
                {
                    continue;
                }
                meshSkinRenderer[i].sharedMaterial.shader = Shader.Find(meshSkinRenderer[i].sharedMaterial.shader.name);
            }
        }

原文地址:https://www.cnblogs.com/imteach/p/10262493.html

时间: 2024-10-06 08:06:59

解决AssetBundle包加载预制体时,Shader显示异常的问题的相关文章

安卓 WebView加载本地图片时居中显示

在一个项目中使用WebView显示gif图片(自定义的View无法放大gif),当图片过小时只在左侧显示,经过研究发现无论设置android:layout_gravity="center_horizontal"还是设置android:gravity="center_horizontal" 都无法居中显示,而且还设置了android:layout_width="wrap_content",但是实际上WebView并没有自适应内容,它的宽度占了屏幕宽

document.write 动态加载 script 脚本时,特殊异常

项目中有个JS,需要动态引入. 写法如下: <script> document.write('<script src="http://www.z4.com/js/xxxx.js?r=' + Math.random() + '"></script>'); </script> 发现一直有错误. 原因是字符串中的</script>与<script>竟然匹配了,导致后面的 ');</script> 成为了HTM

img中图片加载不出时默认显示的图片

在js中有onload.onerror两个事件,可在图片中加入,修改对于的src地址, 这样可改善网络差或者图片丢失时的用户体验 如下 <img  src="img/3.jpg"  onerror="this.src='error.jpg'"/>

spring加载过程中jar包加载不了,解决方法

当我们在开发spring项目时,一般会将jar包放到webInf/lib下,这样是myeclipse自动将jar包加载到tomcat中webapps下,但是当我们新建一个lib文件夹的情况下,我们add building Path时就会出错,这时候我们有个技巧供使用. 1.项目上点击右键搜索de,找到deployment assembly 目的就是将此处添加的jar包添加到系统webINF/lib路径下 来自为知笔记(Wiz) spring加载过程中jar包加载不了,解决方法

有效解决Android加载大图片时内存溢出的问题

首先解析一下基本的知识: 位图模式,bitmap颜色位数是1位 灰度模式,bitmap颜色位数是8位,和256色一样 RGB模式,bitmap颜色位数是24位 在RGB模式下,一个像素对应的是红.绿.蓝三个字节 CMYK模式,bitmap颜色位数是32位  在CMYK模式下,一个像素对应的是青.品.黄.黑四个字节 图像文件的字节数(Byte) = 图像分辨率*颜色深度/8(bit/8) 例如:一幅640*480图像分辨率.RGB色一般为24位真彩色,图像未经压缩的数据容量为:640X480X24

图片--Android有效解决加载大图片时内存溢出的问题

Android有效解决加载大图片时内存溢出的问题 博客分类: Android Android游戏虚拟机算法JNI 尽量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource来设置一张大图,因为这些函数在完成decode后,最终都是通过java层的createBitmap来完成的,需要消耗更多内存. 因此,改用先通过BitmapFactory.decodeStream方法,创建出一个bitmap,再将其设为ImageView

解决 IDA 加载 ntoskrnl.exe 时符号不完全问题

解决 IDA 加载 ntoskrnl.exe 时符号不完全问题 1. 问题:IDA加载xp系统的 ntoskrnl.exe 加载不完全. 2. 尝试过但未成功的解决方案: 1)配置好的IDA的 pdb.cfg,依然无效. 2)清空 C:\\symbol\ 文件下的符号表重新打开,期望符号表会重新下载. 3. 解决方案: 1)使用工具 IDA7.0 64位 吾爱免安装版(32位时加载pdb文件出现错误) 2)PDBDownloader.exe 软件,将 ntoskrnl.exe 文件拖拽进去,点击

WPF加载Winform窗体时 报错:子控件不能为顶级窗体

一.wpf项目中引用WindowsFormsIntegration和System.Windows.Forms 二.Form1.Designer.cs 的 partial class Form1 设置为:public partial class Form1 三.代码如下: XXXX.Form1 Zhuwindow = new XXXX.Form1(); Zhuwindow.TopLevel = false; Zhuwindow.FormBorderStyle = System.Windows.Fo

Android之根布局动态加载子布局时边距设置无效问题

Android大部分的控件都会有padding和layout_margin两个属性,一般来说它们的区别是: padding:控件中的内容离控件边缘的距离. margin:  控件离它的父控件边缘的距离. 今天做了一个由根布局动态加载子布局的实验,结果发现子布局中的这两个属性可以按预期的效果显示,但是给根布局设置的padding并没有对被加载的子布局产生效果. 代码如下: 根布局文件名为activity_main.xml,其xml文件定义的内容为: <LinearLayout xmlns:andr