我在团结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;
}
}
我有点新手..请帮忙。 感谢
答案 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;