繁体   English   中英

C#Unity益智游戏

[英]C# Unity Puzzle Game

我想创建一个游戏,其中所有图块都必须旋转到正确的位置。 我有15个磁贴,并附有脚本,每次单击可将其旋转90度。 我可以检测每个磁贴何时处于正确位置,但是我遇到的麻烦是检测所有15个磁头何时处于正确位置。

这是我的舞台的屏幕截图

https://www.dropbox.com/s/9ag4ly2bil1mzf1/Untitled-1.jpg?dl=0

我当时想我可以创建一个空的游戏对象,并使用代码附加一个新脚本以从每个图块中获取值,并检查是否都正确(位于正确的位置)。

这是我的旋转脚本的基本代码

using UnityEngine;
using System.Collections;

public class rotate : MonoBehaviour {

    public float rotationAnswer;
    // Use this for initialization
    void Start() {}

    // Update is called once per frame
    void Update() {}

    float rotationValue = 0;

    void OnMouseDown(){
        transform.Rotate(Vector3.up * 90);
        rotationValue = transform.rotation.eulerAngles.y;
        Debug.Log ( rotationValue );

        if ( rotationValue == rotationAnswer)
        {
            Debug.Log ( "Correct" );
            switch (this.name )
            {
            case "tile1":

            }

            Debug.Log ( GameObject.Find("GameComplete").GetComponent<TileGameComplete>().totalCorrectTiles ))

        } else {
        Debug.Log ( "Wrong" );
        }
    }
}

这是我用于检测和完整游戏脚本的基本代码

using UnityEngine;
using System.Collections;

public class TileGameComplete : MonoBehaviour {

    public int currentCorrectTiles = 0;
    public bool tile1 = false;
    public bool tile2 = false;
    public int totalCorrectTiles = 15;
    // Use this for initialization

    void Update() 
    {
        GameObject.Find("Tile1").GetComponent<rotate>().done
        if (tile1 && tile2) 
        {
            Debug.Log ("You've won");
        }
    }
}

您将如何使用C#解决此问题。 谢谢 :)

保持共享或静态变量在级别开始时设置为零。 将形状移动到正确的旋转位置时,将一个加到计数中;如果将形状移出正确的旋转位置,则从该计数中减一。 当计数等于15时,难题便解决了。

我正在工作,目前无法访问Unity,因此无法给您代码,但是如果您将场景中另一个(空)GameObject的所有15个tile子对象全部设为孩子,则可以访问该父对象的子对象集合,进行遍历以检查它们是否都已正确旋转。

@Agumander有一个很好的答案,但我个人更喜欢保持逻辑简单。 我建议创建一个可通过公共静态列表或GameObject.find(...)访问所有15个图块的GameController,这样,您无需在每次更新每个图块时都检查列表15次。 磁贴只需要做自己的工作(旋转),游戏控制器将确定结束/重新启动游戏的逻辑

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM