两种颜色背景

问题描述:

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

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

另外,我怎样才能使一个立方体看起来像第一个从底部褪色?

在此先感谢。

+0

着色器可能 – Fiffe

+0

https://purplelilgirl.wordpress.com/2015/01/30/how-to-create-gradient-backgrounds-in-unity/ –

+1

@Fiffe是正确的。这是一个体积着色器。实际上,这是一个需要阅读少量书籍才能正确使用的主题。如果您不知道Unity的着色语言,请参阅[this](https://www.assetstore.unity3d.com/en/#!/content/56245)插件。 – Programmer

使用简单的2x1大小的纹理,可以达到类似的效果。

将一幅画布(在Camera world中,离您的相机很远)与原始图像拍摄整个屏幕。如果你想有更多颜色的渐变,改变创建纹理的高度,改变一点点的SetColor`功能

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; 
} 

然后,创建一个脚本,用下面的代码。

否则,我发现这个Git仓库有cusztom空中包厢渐变着色器:

https://github.com/keijiro/UnitySkyboxShaders

支付解决方案,该资产似乎是你想要什么:https://www.assetstore.unity3d.com/en/#!/content/37726

+0

你在背景中看到的不仅仅是一个纹理。它是纹理+体积着色器的组合。如果你看看最底层的背景,你会看到它如何对它周围的对象做出反应。 – Programmer

+0

正是我需要的。 –

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

并回答你的第二个问题,着色器。有关于创建梯度着色器的a recent blog post非常像您提供的图片中看到的那个。博客文章将指导您完成着色器的创建,并在帖子末尾提供着色器的完整代码。