如何用unity3d在2d游戏中绘制单色背景

本文关键字:绘制 单色 背景 游戏 2d 何用 unity3d | 更新日期: 2023-09-27 18:28:08

我正在用Unity3D创建一个2D游戏,但我对它还很陌生。我试着画一个单色背景,在它前面有一些精灵

我发现了这个代码:

using UnityEngine;
using System.Collections;
public class GUIRect : MonoBehaviour {
    public Color color;
    // Use this for initialization
    void Start () {
    }
    // Update is called once per frame
    void Update () {
    }
    private static Texture2D _staticRectTexture;
    private static GUIStyle _staticRectStyle;
    // Note that this function is only meant to be called from OnGUI() functions.
    public static void GUIDrawRect( Rect position, Color color )
    {
        if( _staticRectTexture == null )
        {
            _staticRectTexture = new Texture2D( 1, 1 );
        }
        if( _staticRectStyle == null )
        {
            _staticRectStyle = new GUIStyle();
        }
        _staticRectTexture.SetPixel( 0, 0, color );
        _staticRectTexture.Apply();
        _staticRectStyle.normal.background = _staticRectTexture;
        GUI.Box( position, GUIContent.none, _staticRectStyle );
    }
    void OnGUI() {
        GUIDrawRect(Rect.MinMaxRect(0, 0, Screen.width, Screen.height), color);
    }
}

我把它附加到一个空的游戏对象上,它运行得很好,但我无法决定它和场景中其他精灵之间的z顺序。

这是正确的方法吗?如果是,我应该如何更改它的绘制顺序?

如何用unity3d在2d游戏中绘制单色背景

您使用的是unity Pro吗?如果是,则可以使用后处理着色器。http://docs.unity3d.com/Manual/script-GrayscaleEffect.html

如果你想有一个2d背景,只需在启动Unity时使用2d设置。然后你的背景可以是纹理精灵层叠在一起。除了实际的GUI项目之外,没有理由在GUI上绘制。http://answers.unity3d.com/questions/637876/how-to-make-background-for-2d-game.html