赞
踩
1. 2018.4 A工程的预制体 拖到同版本的B工程 要【手动】设置一下 B工程里面对应的材质球
不然B工程 AB资源打包--->加载的时候 会出现材质球的Shader丢失,解决办法:不要在Start里面 在LateUpdate调用 一下 防止没有在对应时机调用到,实测 也适用于
SkeletonAnimation游戏物体对象打包AssetsBundle后 加载物体到场景 shader全紫色的问题
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using Spine.Unity;
- using UnityEngine;
- using UnityEngine.UI;
-
- public class ForHoratioFixBug : MonoBehaviour
- {
-
- public SkeletonAnimation skeletonAnim;
-
- public Renderer[] meshSkinRenderer;
-
- void Start()
- {
- skeletonAnim = gameObject.GetComponentInChildren<SkeletonAnimation>();
- }
-
-
- private void LateUpdate()
- {
- ShaderRecover(gameObject);
- }
-
-
- 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);
- }
-
- 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);
- }
- }
- }

附加: 让Unity导出APK或工程的时候强制绑定指定的Shader而不剔除,与 添加强制预加载的Shader
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。