我在游戏中看到了一个有趣的背景,我想知道它是如何制作的,我该如何将它应用到我自己的应用程序中。
在这里我们可以看到背景。顶部为黄色,底部为蓝色。这不是一个简单的图像,因为在游戏过程中颜色会像过渡一样变化。
另外,如何使立方体看起来像从底部的第一个看起来褪色?
提前致谢。
答案 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非常类似于您提供的图片中所示的渐变着色器。博客文章将引导您完成着色器的创建,并在帖子的末尾提供着色器的完整代码。