2017-06-29 215 views
0

我在遊戲中看到了一個有趣的背景,我想知道它是如何製作的以及如何將它實現到我自己的應用程序中。 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

回答

2

使用簡單的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

正是我需要的。 –

1

一種方式來實現梯度背景是通過使用天空盒。我也可以爲Marvelous Techniques(MT)擔保,對此Hellium在他們的回答中也提供了一個鏈接。它的確需要花錢,當然,在這個過程中你不會學到很多東西。但是,如果你的主要目標是隻有你在圖片中看到的東西,那麼MT應該讓你在那裏。

並回答你的第二個問題,着色器。有關於創建梯度着色器的a recent blog post非常像您提供的圖片中看到的那個。博客文章將指導您完成着色器的創建,並在帖子末尾提供着色器的完整代碼。