创新项目实训实践笔记-18

    技术2022-07-11  86

    创新项目实训实践笔记-18

    平面检测部分4-场景切换背景知识开始动手

    平面检测部分

    4-场景切换

    在前面几次的博客中我们新建了一个场景,于是场景切换变成了一个难题。

    背景知识

    按住ctrl+shift+B可以看到,在我们准备打包的场景后面是有编号的 而这个编号成为了场景切换的关键所在。

    开始动手

    首先我们在两个关键的游戏场景中各创建一个按钮,用于场景切换命名为change_mode

    并且添加按钮事件至click_control脚本中

    public void ToCardMode() { SceneManager.LoadScene(1); } public void ToNoCardMode() { SceneManager.LoadScene(2); }

    其中ToCardMode方法用于从无卡模式(平面检测模式)切换至有卡模式(图片识别模式);ToNoCardMode方法用于从有卡模式(图片识别模式)切换至无卡模式(平面检测模式)。 同时将两个方法分别放入不同的场景的按钮的点击方法中。

    值得一提的时,两个方法中传入的参数0和1分别对应着上文中提到的不同场景界面的编号值得注意的一点是,一定要在脚本开始加入下面这句话,否则将会报错。 using UnityEngine.SceneManagement;

    click_control现修改为

    using GoogleARCore.Examples.HelloAR; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class click_control : MonoBehaviour { public int click_num = 0; public int rotate_num = 0; public bool isPlay = false; public bool isRotate = false; public bool BoxRotate = false; public bool die = false; public float speed = 5f; public GameObject Plane_con; // Start is called before the first frame update void Start() { } // Update is called once per frame void Update() { } public void click() { click_num = click_num + 1; } public void playAudio() { isPlay = true; } public void playIsOk() { isPlay = false; } public void back() { SceneManager.LoadScene(0); } public void ToCardMode() { SceneManager.LoadScene(1); } public void ToNoCardMode() { SceneManager.LoadScene(2); } public void item_rotate() { if (rotate_num % 2 == 0) { isRotate = true; } else { isRotate = false; } rotate_num++; } public void fastRotate() { BoxRotate = true; } public void slowRotate() { BoxRotate = true; } public void refresh() { die = true; Plane_con.GetComponent<HelloARController>().hasFile = false; } }
    Processed: 0.017, SQL: 9