在 Unity 3D 中显示对象的线框之间切换



我对 Unity 和 C# 相当陌生,但已经搜索了足够多的内容,认为除了使用着色器之外,目前没有可用的解决方案。(免费版不提供着色器(

到目前为止,我已经能够使用以下方法更改我的模型是否以线框显示:

// from http://docs.unity3d.com/ScriptReference/GL-wireframe.html
using UnityEngine;
using System.Collections;
public class ExampleClass : MonoBehaviour {
void OnPreRender() {
GL.wireframe = true;
}
void OnPostRender() {
GL.wireframe = false;
}
}

但是,这不允许我根据需要在游戏中切换两者。我假设解决方案是重新渲染,但不确定这是否是正确的方法。有什么建议吗?

唯一合理的解决方案是使用免费版本中提供的着色器。从 Unity 5 开始,专业版和免费版仅根据许可证而有所不同;如果您的游戏收入超过 100,000 美元,您需要支付专业许可证的费用。但是,所有功能在两者中都可用。

更新:要实际应用着色器,您需要确保您的模型已进行 UV 映射(又名:展开(。此过程说明如何将 2D 纹理坐标转换为模型的 3D 表面。把它想象成如何在礼物表面切割和折叠包装纸。

解释UV映射和解包远远超出了这个问题的范围。这里有一个链接解释了Blender的基础知识

https://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/UV_Map_Basics