首页 > 解决方案 > 在骰子上得到 6 后移动令牌

问题描述

所以目前我正在做一个 Ludo 游戏,当我在骰子上得到 6 时,一个红色标记进入起始位置。现在我需要知道在我再次掷骰子后如何使令牌移动。移动令牌的代码已经实现,如下所示:

NetworkLayer.MoveSteps(NetworkManager.MyGamePlayerId, randomDiceSide);

这是我使用的协程Dice

    private IEnumerator RollTheDice()
    {
        int randomDiceSide = 0;
        int finalSide = 0;

        for (int i = 0; i <= 20; i++)
        {
            randomDiceSide = Random.Range(1, 7);
            rend.sprite = diceSides[randomDiceSide];
            yield return new WaitForSeconds(0.05f);
        }

        if(randomDiceSide == 6)
        {
            if(NetworkManager.MyGamePlayerId != "Spectator"){
            //inform everyone about this, including myself
            GameObject path = GameObject.Find("Box1");
            player.transform.position = path.transform.position;
            //NetworkLayer.MoveSteps(NetworkManager.MyGamePlayerId, randomDiceSide);
            }
            else{
                print("you cannot generate random numbers...you are the spectator");
            }     
        }

        Debug.Log(randomDiceSide);
    }

我只需要知道如何在再次掷骰子时使令牌移动。我在哪里可以实现布尔值?

标签: c#unity3d

解决方案


考虑为您的播放器实现一个类。您可以在此处保留与玩家相关的所有属性,例如令牌的位置、令牌精灵、canMove移动可能性的布尔值等。

另一种解决方案是为您的令牌创建一个单独的类并在那里保持布尔值。

最简单的方法是将该布尔值存储在您NetworkManager班级或类似管理器中的数组中。在这种情况下,您可以将所有令牌属性存储在一个地方。


推荐阅读