在sprite问题上切换颜色

时间:2016-05-10 23:21:55

标签: c# 2d unity5

所以我做了一个简单的游戏,有几个关键功能。

基本概述:你是一个正方形。你必须从A点到B点。它是一个平台游戏。 (第一场比赛,不要讨厌)。

无论如何,我决定实施一个有趣的功能。只有2种颜色可供选择。黑与白。如果你是白色,那么地面是黑色的。如果地面是白色的,那么你就是黑色。背景是纯白色。所以基本上你可以选择查看你的播放器,或者看看你在哪里移动。您可以使用Shift键来回切换。

现在,我的问题是切换关卡颜色。该等级全部为1级,平台上单独放置的箱式对撞机。我可以在播放器上切换白色和黑色,但无论按下多少次,地面都不会切换颜色。

(问题不在于时间,只是在按下换档时也能切换颜色。)

我有两个相同的单独脚本。地面上设置的唯一区别是布尔值被交换,因此您永远不会与地面颜色相同。这是我的代码。有人可以帮我弄清楚为什么我无法改变,但玩家没问题? 尖峰也是如此(他们分开了精灵)

private bool colorSet = true;

void Start () 
{

}


void Update () 
{
    if (Input.GetKeyDown (KeyCode.RightShift)) 
    {
        colorSet = !colorSet;
    }


    if (colorSet == true) 
    {
        gameObject.GetComponent<SpriteRenderer> ().color = Color.white;
        Debug.Log ("I should be white!");
    }

    else if (colorSet == false) 
    {
        gameObject.GetComponent<SpriteRenderer> ().color = Color.black;
        Debug.Log ("I should be black!");
    }

}

1 个答案:

答案 0 :(得分:0)

我遇到过必须执行以下操作以获取颜色更改以处理精灵的情况。它只是将小块.material添加到您的代码中。

gameObject.GetComponent<SpriteRenderer>().material.color = Color.your_color_here;