【问题标题】:Switching colors on sprites issue在精灵问题上切换颜色
【发布时间】:2016-05-10 23:21:55
【问题描述】:

所以我制作了一个具有几个关键功能的简单游戏。

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

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

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

(问题不在于时间,只是让地面也可以在按下 shift 时切换颜色。)

我有 2 个相同的独立脚本。地面上的一组之间的唯一区别是布尔值被交换,因此您永远不会与地面颜色相同。这是我的代码。有人可以帮我弄清楚为什么我不能改变地面但玩家没问题吗? 尖峰也是如此(它们是单独的精灵)

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!");
    }

}

【问题讨论】:

    标签: c# 2d unity5


    【解决方案1】:

    我遇到过一些情况,我必须执行以下操作才能使颜色更改在精灵上起作用。它只是将一小块 .material 添加到您的代码中。

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

    【讨论】:

    • 谢谢!一旦我回到我的战斗站,我会试一试。奇怪的是它在广场上运行良好,但在地图上却不行?也许是因为所有不同的碰撞盒或其他原因。
    • 脚本附在哪里?它是否附加到包含精灵的游戏对象?
    • 使用精灵编辑器后只需拖放即可。唯一附加到它们的是盒子碰撞器,实际的精灵不是任何东西的父对象
    • 你能发布一个游戏对象在层次结构和检查器中的屏幕截图吗?
    猜你喜欢
    • 1970-01-01
    • 2012-11-16
    • 2014-10-27
    • 2018-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多