所以我做了一个简单的游戏,有几个关键功能。
基本概述:你是一个正方形。你必须从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!");
}
}
答案 0 :(得分:0)
我遇到过必须执行以下操作以获取颜色更改以处理精灵的情况。它只是将小块.material添加到您的代码中。
gameObject.GetComponent<SpriteRenderer>().material.color = Color.your_color_here;