分数条件不适用于我的代码

时间:2016-05-18 12:19:23

标签: c# android if-statement unity3d

我在团结3d中制作了一个飞扬的鸟类游戏,但是当我将得分上的条件大于3时,Application.LoadLevel()在if语句中不起作用。 我也把Debug.Log检查if语句,但它也不起作用。 我在下面附上了代码,你可以看到它

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using UnityEngine.SceneManagement;


public class Score : MonoBehaviour {

static int score = 0;
static Score instance;
Text text;

static public void AddPoint() 
{ 
    if (score > 3) 
    {
        SceneManager.LoadScene ("MainMenu");
        if (instance.bird.dead)  return;
    }
    else
    {               
        SceneManager.LoadScene( Application.loadedLevel );
    }

    score++;
}

BirdMovement bird;

void Start() 
{
    instance = this;
    GameObject player_go = GameObject.FindGameObjectWithTag("Player");

    if(player_go == null) 
    {
        Debug.LogError("Could not find an object with tag 'Player'.");
    }   

    bird = player_go.GetComponent<BirdMovement>();
}

void OnDestroy() 
{
    instance = null;
}

void Awake ()
{
    // Set up the reference.
    text = GetComponent<Text> ();

    // Reset the score.
    score =0;
}

void Update () 
{
    text.text = ""+ score;
}
}

我有点新手..请帮忙。 感谢

4 个答案:

答案 0 :(得分:0)

据我所知,你永远不会改变mSelectedFacing的价值。默认情况下为score,因此0永远不会高于score

答案 1 :(得分:0)

当得分大于3时你正在放置条件但是你正在使用另一个条件满足条件。首先清除此问题并编辑您的问题

答案 2 :(得分:0)

Application.LoadLevel被贬低

使用

static public void AddPoint() 
    { 
        if (score > 3) 
        {
            SceneManager.LoadScene ("WinScreen");
            if (instance.bird.dead)  return;
        }
        else
        {               
            SceneManager.LoadScene ("what_string_name_scene_you_want)");
        }

        score++;
    }

别忘了using UnityEngine.SceneManagement;

你的玩家要赢得1分才能做什么?在哪里调用`AddPoint()?

修改

static public void AddPoint()
        { 
        // First add score point
        score++;

        // When score better than 3 go to Main Menu
        if (score > 3) {
            SceneManager.LoadScene ("MainMenu");
        }

        // Another condidion
        if (instance.bird.dead) { 
            return;

        } else {

            SceneManager.LoadScene ("What_level_you_want");
        }
    }

答案 3 :(得分:0)

Application.LoadLevel(<levelNumber>)

这种方法已被弃用,但现在它也适用于Unity 5.x版本。 这样你就可以使用像

这样的方法
Application.LoadLevel(0);

OR

您也可以使用SceneManager切换场景。

SceneManager.LoadScene ("Your NextScene Name");

还要实现命名空间:using UnityEngine.SceneManagement;