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

平面检测部分

4-场景切换

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

背景知识

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

开始动手

首先我们在两个关键的游戏场景中各创建一个按钮,用于场景切换命名为change_mode
在这里插入图片描述

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

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

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

  • 值得一提的时,两个方法中传入的参数01分别对应着上文中提到的不同场景界面的编号
  • 值得注意的一点是,一定要在脚本开始加入下面这句话,否则将会报错。
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;
    }
}

©️2020 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值