【问题标题】:UI Canvas Start - Quit GameUI 画布开始 - 退出游戏
【发布时间】:2016-04-23 04:08:35
【问题描述】:

我的游戏主屏幕上有 2 个画布 UI (Start and Exit)。我想添加 1 个执行以下操作的脚本:

当点击 UI Image Play

public void NextLevel(int level)
{
    Score.Inicializar(); 
    Application.LoadLevel (1);

}

当 UI Image Exit 被点击时

Application.Quit ();

C# 如果可能的话。

【问题讨论】:

  • 您能详细说明一下吗?这个问题有点不清楚
  • @AndrewL 已编辑 =]
  • 需要注意的是 Application.LoadLevel(int level) 已被弃用,使用 LevelManager 并加载关卡。我从这个问题中得到的是你有 2 个画布并且你想要一个脚本来加载当前级别的下一个级别?还有另一个名为 exit 的函数,它执行 Application.quit() ?
  • @AndrewL 是的,当那个 UI 点击 Play = LoadLevel / Exit = Application Quit。
  • 您可以创建一个脚本来检查是否单击了播放或退出按钮,但我会创建两个,一个退出脚本和一个播放脚本

标签: c# unity3d unityscript unity5


【解决方案1】:

将此脚本添加到您的 Play 图像中:

using UnityEngine;
using UnityEngine.EventSystems;
//using UnityEngine.SceneManagement; // uncomment this line in case you wanna use SceneManager

public class HandleClickOnPlayImage : MonoBehaviour, IPointerClickHandler {
    int level = 1; // I'm assuming you're setting this value somehow in your application

    public void OnPointerClick (PointerEventData eventData)
    {
        Score.Inicializar(); 
        Application.LoadLevel (level);
        // SceneManager.LoadScene (level); // <-- use this method instead for loading scenes
    }   
}

并将此脚本添加到您的退出图像:

using UnityEngine;
using UnityEngine.EventSystems;

public class HandleClickOnExitImage : MonoBehaviour, IPointerClickHandler {
    public void OnPointerClick (PointerEventData eventData)
    {
        Application.Quit();
    }   
}

最后确保没有其他 ui 阻止/重叠您的图像,否则它们将不会收到任何点击事件。

更不用说脚本文件的名称应该与其类的名称匹配:)

【讨论】:

  • 尝试使用 SceneManager.LoadScene() ,因为 Application.LoadLevel() 已被弃用。
  • 改变了!!!为了未来......不要忘记using UnityEngine.SceneManagement;Scenemanager.LoadScene()工作
猜你喜欢
  • 2023-04-04
  • 2015-09-30
  • 1970-01-01
  • 2021-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多