我想在Unity UI系统中创建一个两面都有不同颜色的图像。比如当我将它旋转180度时它看起来不同。
我用单个父母试验了两个图像然后旋转父母。 即使添加了画布组件或更改“z”轴,它也无法正常工作。
我能找到的唯一解决方案是在旋转中间更改排序图层,但我真的想避免这种情况。
答案 0 :(得分:1)
使用您提到的父对象,将两个图像放在其下。 创建两个材质并添加以下单面着色器:
Shader "GUI/3D Text Shader - Cull Back"
{
Properties{
_MainTex("Font Texture", 2D) = "white" {}
_Color("Text Color", Color) = (1,1,1,1)
}
SubShader
{
Tags{ "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderType" = "Transparent" }
Lighting Off Cull Back ZWrite Off Fog{ Mode Off }
Blend SrcAlpha OneMinusSrcAlpha
Pass
{
Color[_Color]
SetTexture[_MainTex]
{
combine primary, texture * primary
}
}
}
}
为每张图片指定两种材质。在y轴上将图像中的一个翻转180度。 然后你应该能够旋转父项以创建翻转效果。
信用: http://answers.unity3d.com/questions/310203/1-way-text-mesh.html
答案 1 :(得分:0)
古老,但可能会帮助别人;该解决方案适用于3D GameObject
图像;并将逻辑应用于UI图片
步骤:
GameObject
创建几个Quad
对象作为全新GameObject
将每个图像拖放到相关的Quad
GameObject
,这两个图像都会显示; 我的示例显示了一种挥舞旗帜