VR拆装(HTC vive Pro开发)——7、一些脚本的分享(四)
-
分析:在完成对于项目四个场景主要功能脚本的介绍后,需要考虑如何完成场景之间的切换和在结束项目体验后的退出问题。
-
关于场景切换:博主和小伙伴并未采用性能更流畅的异步加载的方式,通过简单的“SceneManager.LoadScene”这种方法实现了需求。这为之后在完成项目搭建,进行项目测试出现场景切换掉帧、卡顿等问题埋下了伏笔。是一个遗憾的地方。有兴趣的童鞋可以在自己的项目中去考虑一下这个问题。但对于较小的项目无需考虑这方面问题。还需要注意将搭建好的场景按照File>Build Settings>Add Open Scenes"添加场景">Build 的顺序完成对场景的添加。如图:
-
关于退出:现存部分网上的开源项目或者实验室提供的部分软件在这方面并没有做到,造成结束项目体验后,不能方便的退出。我和小伙伴通过添加脚本实现了这个功能:在结束项目体验后,敲击“Esc”键实现退出。
-
具体脚本如下:
场景切换:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using VRTK;
public class HandSceneChange : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void onClick_Disassembly()
{
//Debug.Log("已经进入到装配场景中");
SceneManager.LoadScene("Disassembly", LoadSceneMode.Single); //进入到拆卸场景
}
public void onClick_Assembly()
{
//Debug.Log("已经进入到拆卸场景中");
SceneManager.LoadScene("Assembly", LoadSceneMode.Single); //进入到装配场景
}
public void onClick_Knowledge()
{
//VRTK_SDKManager.instance.enabled = false;
//Debug.Log("已经进入到认知场景中");
SceneManager.LoadScene("Knowledge", LoadSceneMode.Single); //进入到认知场景
}
public void onClick_Back()
{
SceneManager.LoadScene("loading", LoadSceneMode.Single); //返回MainScenens
//Debug.Log("已经返回到主场景中");
}
}
退出:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Quit : MonoBehaviour
{
// Start is called before the first frame update
private void Update()
{
if (Input.GetKeyDown(KeyCode.Escape) /*|| Input.GetKeyDown(KeyCode.Home)*/)
{
QuitProgram();
}
}
public void QuitProgram() //退出项目
{
Application.Quit();
}
}