Unity UI双面图像

时间:2017-10-26 13:11:27

标签: unity3d

我想在Unity UI系统中创建一个两面都有不同颜色的图像。比如当我将它旋转180度时它看起来不同。

我用单个父母试验了两个图像然后旋转父母。 即使添加了画布组件或更改“z”轴,它也无法正常工作。

我能找到的唯一解决方案是在旋转中间更改排序图层,但我真的想避免这种情况。

2 个答案:

答案 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图片

步骤:

  1. 创建GameObject
  2. 创建几个Quad对象作为全新GameObject

  3. 的子代
  4. 将每个图像拖放到相关的Quad

  5. 对于要反转其图像的四边形,设置其轴(无论您要访问什么,均设为-180),并保持另一个四边形不旋转 现在,您可以旋转父级GameObject,这两个图像都会显示;

我的示例显示了一种挥舞旗帜

相关问题