几天前我开始使用Unity,我使用官方教程来学习。我有第一场比赛,我开始喜欢编程。我对此非常陌生,如果我更好地制作这些教程游戏,它会对我有所帮助。一切都很好,但现在我被卡住了。我想要一个在赢得比赛时出现的菜单。我做了菜单,它有3个按钮('再试一次','菜单'和'退出')。这是一张图片:http://prntscr.com/9jy71h。按钮有效,但我唯一的问题是它们出现在整个游戏中,而我最后只想要它们。我尝试了很多,但我似乎总是得到这个错误:当前上下文中不存在“重试”。
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class PlayerController : MonoBehaviour {
public float speed;
public Text countText;
public Text winText;
private Rigidbody rb;
private int count;
void Start ()
// The game starts here.
{
rb = GetComponent<Rigidbody>();
count = 0;
SetCountText ();
winText.text = "";
Retry.GameObject.SetActive(false);
Menu.GameObject.SetActive(false);
Exit.GameObject.SetActive(false);
}
void FixedUpdate ()
// Movement.
{
float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");
Vector3 movement = new Vector3 (moveHorizontal, 0.0f, moveVertical);
rb.AddForce (movement * speed);
}
void OnTriggerEnter(Collider other)
// Picking things up and count score.
{
if (other.gameObject.CompareTag("Pick Up"))
{
other.gameObject.SetActive (false);
count = count + 1;
SetCountText ();
}
}
void SetCountText ()
{
countText.text = "Count:" + count.ToString ();
if (count >= 12)
// End of the game, you won.
{
winText.text = "You win!";
Retry.GameObject.SetActive(true);
Menu.GameObject.SetActive(true);
Exit.GameObject.SetActive(true);
}
}
}
为什么他不能识别我制作的游戏对象? (你在图片上看到的按钮)抱歉我的英文不好,感谢您花时间阅读本文以及可能的答案。
编辑:http://prntscr.com/9jybke这些都是错误。但是,如果我删除顶部和底部的6个游戏目标(bool),它可以正常工作,但我一直都在打开菜单。
答案 0 :(得分:0)
您缺少的是从脚本到按钮游戏对象的引用,以便您可以打开/关闭它们。
如果您添加到脚本
public GameObject retryButton;
类似于其他按钮,然后在Unity的检查器中,您可以将三个按钮GameObjects拖动到检查器中相应的“插槽”。
然后在您的代码中,将Retry.GameObject.SetActive()
替换为retryButton.SetActive()
同样适用于其他按钮。
实际上,您似乎已经在为“countText”和“winText”执行此操作。
答案 1 :(得分:0)
尝试将按钮放在游戏对象中并使用对象 .SetActive(false)
它对我有用。