两种颜色的背景

时间:2017-06-29 09:10:13

标签: unity3d

我在游戏中看到了一个有趣的背景,我想知道它是如何制作的,我该如何将它应用到我自己的应用程序中。 enter image description here

在这里我们可以看到背景。顶部为黄色,底部为蓝色。这不是一个简单的图像,因为在游戏过程中颜色会像过渡一样变化。

另外,如何使立方体看起来像从底部的第一个看起来褪色?

提前致谢。

2 个答案:

答案 0 :(得分:4)

使用简单的2x1大小的纹理,您可以获得类似的效果。

将画布(在Camera world中,距离相机很远)放置整个画面的原始图像。

然后,使用以下代码创建一个脚本:

public UnityEngine.UI.RawImage img;

private Texture2D backgroundTexture ;

void Awake()
{
    backgroundTexture  = new Texture2D(1, 2);
    backgroundTexture.wrapMode = TextureWrapMode.Clamp;
    backgroundTexture.filterMode = FilterMode.Bilinear;
    SetColor( Color.black, Color.white ) ;
}

public void SetColor( Color color1, Color color2 )
{
    backgroundTexture.SetPixels( new Color[] { color1, color2 } );
    backgroundTexture.Apply();
    img.texture = backgroundTexture;
}

如果您想要一个具有更多颜色的渐变,请更改所创建纹理的高度,并稍微更改一下SetColor`函数。

另外,我发现这个Git存储库有一个cusztom Skybox渐变着色器:

https://github.com/keijiro/UnitySkyboxShaders

付费解决方案,此资产似乎是您想要的:https://www.assetstore.unity3d.com/en/#!/content/37726

答案 1 :(得分:1)

实现渐变背景的一种方法是使用天空盒。我也可以担保Marvelous Techniques(MT),为此Hellium也在答案中提供了一个链接。它确实需要花钱,当然,你在这个过程中不会学到很多东西。但如果你的主要目标只是拥有你在图片中看到的东西,那么MT应该让你到那里。

回答你的第二个问题,着色器。关于创建渐变着色器有a recent blog post非常类似于您提供的图片中所示的渐变着色器。博客文章将引导您完成着色器的创建,并在帖子的末尾提供着色器的完整代码。