首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#统一益智游戏

C#统一益智游戏
EN

Stack Overflow用户
提问于 2015-03-28 00:26:39
回答 3查看 1.6K关注 0票数 0

我想创建一个游戏,其中所有的瓷砖必须旋转到正确的位置。我有15个瓷砖与脚本附加,在每次点击旋转他们90度。我可以检测到每个瓷砖何时都在正确的位置,但我所做的是检测所有15个瓷砖何时都在正确的位置。

这是我的舞台截图

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

我在想,我可以创建一个空的游戏对象,并附加一个新的脚本与代码,以获得每个瓷砖的值,并检查是否所有都是真的(在正确的位置)。

以下是我的旋转脚本的基本代码

代码语言:javascript
运行
复制
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" );
        }
    }
}

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

代码语言:javascript
运行
复制
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#中解决这个问题。谢谢:)

EN

回答 3

Stack Overflow用户

发布于 2015-03-28 05:03:13

保留在级别开始时设置为零的共享或静态变量。当形状被移入正确的旋转时,计数加一,如果形状移出正确的旋转,则从计数中减一。当计数等于15时,谜题就解开了。

票数 2
EN

Stack Overflow用户

发布于 2015-03-28 00:38:57

我正在工作,现在不能访问Unity,所以不能给你代码,但是如果你在你的场景中创建了另一个(空) GameObject的所有15个tiles的孩子,那么你可以访问那个父对象的孩子集合,并通过迭代来检查他们是否都被正确地旋转了。

票数 0
EN

Stack Overflow用户

发布于 2017-12-07 09:27:18

@Agumander有一个很好的答案,但就个人而言,我更喜欢保持逻辑简单。我建议创建一个可以通过公共静态列表或GameObject.find(...)访问所有15个磁贴的GameController。这样你就不需要在每次游戏更新时检查列表15次了。游戏玩家只需要做他们自己的工作(旋转),游戏控制器将决定结束/重新开始游戏的逻辑

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29305543

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档