3月 9

【Unity小帖士】GameObject.CreatePrimitive创建的物体在打包后显示成粉色

GameObject.CreatePrimitive是直接在runtime的时候创建一个Unity基本的的物体,比如:

运行之后在Editor里显示如下图。

但是在build之后显示却出现了问题,Cube显示成粉色。

首先粉色的主要原因就是shader不正确,Unity没找到这个shader。
没找到shader是因为Unity在build的时候先在project里找一遍prefab和scene里的shader,把这些shader都一起打包。
但是因为CreatePrimitive是Runtime的时候执行的,它自带的Shader在打包的时候并不会被Unity找到,也就不会被打包。
所以就成了这样。

只要在下面的设置里手动加上一个Standard的Shader就可以了。

当然,大部分时候这个Standard的shader是肯定会被什么物体用掉的,所以一般项目里东西多了的时候这个shader自然就被别的物体带着一起打包了,不会出现这个问题。只有基本上完全空的Project才能出现这种奇葩问题。


Copyright 2021. All rights reserved.

发表 3月 9, 2023 自 Ellison 类别 "Tech", "Unity

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注