教育类虚拟仿真参考的一个框架

下面这个脚本,适合做事件主线的控制

public enum CurrentState{

    clickOne,

    clickTwo,

    clickThere

}
/// <summary>
/// 作者:徐海涛 (hunk Xu) 
/// 这个脚本比较适合做教育的虚拟仿真,很明显特点就是:先做什么,后做什么,然后接着做什么
/// </summary>
public class mainTimeLine : MonoBehaviour
{
    public  CurrentState stateType;
    public int count = 0;

    public static mainTimeLine instance;

    void Awake()
    {
        instance = this;
    }

    void Start()
    {
        count = 0;
    }

    // Update is called once per frame
    void Update()
    {
        if (count == 0)
        {
            count = 1;
            step01();
            step02();
        }

        if (Input.GetMouseButtonDown(0))
        {
            //instroduce 
            stateType=CurrentState.clickOne;
            count = 0;
        }
    }


    public void step01(){
        if (stateType == CurrentState.clickOne) {
            StartCoroutine(Common.DelayToInvokeDo(() =>
                {
                    //1秒后做什么
                }, 1f));
            StartCoroutine(Common.DelayToInvokeDo(() =>
                {
                    //4秒后做什么
                }, 4f));

            StartCoroutine(Common.DelayToInvokeDo(() =>
                {
                    //25秒后做什么
                }, 25f));
        }
    }

    public void step02(){
        if (stateType == CurrentState.clickOne) {
        }
    }

}


还有一个工具类:

using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;

public class Common {
    public static IEnumerator DelayToInvokeDo(Action action, float _delaySeconds)
    {
        yield return new WaitForSeconds(_delaySeconds);
        action();
    }
}


FR:海涛高软(hunk Xu) QQ技术交流群:386476712

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
引用\[1\]:本文针对VRTK做了一套简单的UI框架。由于VR游戏的UI相对来说比较复杂,普通的UGUI并不能满足要求,所以下面我们自定义一套更适合VR的UI框架,以便于开发和管理。\[1\]引用\[2\]:GitHub - NRatel/NRFramework.UI: 基于 Unity UGUI 的 UI 开发框架基于 Unity UGUI 的 UI 开发框架. Contribute to NRatel/NRFramework.UI development by creating an account on GitHub.https://github.com/NRatel/NRFramework.UI\[2\]引用\[3\]:3、UIPanel 中维护自身 显示状态 和 动画状态(重要,管理不好状态,后期可能出现各种异步冲突问题,状态也是系统(如引导)随时操作UI的基础)、并提供操作自身的接口 和 子可重写的打开/关闭动画接口(比如,播放动画时可将Widget考虑进去)。 public enum UIPanelShowState { Initing, Refreshing, Idle, Hidden, /* Destroyed */ } public enum UIPanelAnimState { Opening, Idle, Closing, Closed } protected void CloseSelf(Action onFinish = null) {} protected void DestroySelf() {} protected void SetSelfVisible(bool visible) {} protected virtual void PlayOpenAnim(Action onFinish = null) protected virtual void PlayCloseAnim(Action onFinish = null)\[3\] 问题:unity 虚拟仿真 框架 回答: 对于Unity虚拟仿真框架,可以使用基于Unity UGUI的UI开发框架来实现。这个框架可以满足VR游戏UI的复杂需求,并提供了统一的UI管理和事件管理功能。你可以在GitHub上找到一个名为NRFramework.UI的开源项目,它提供了这样一个基于Unity UGUI的UI开发框架。\[2\]在这个框架中,UIPanel维护了自身的显示状态和动画状态,并提供了操作自身的接口和可重写的打开/关闭动画接口。通过定义UIPanelShowState和UIPanelAnimState枚举,可以管理UI的显示状态和动画状态。此外,还提供了一些方法如CloseSelf、DestroySelf和SetSelfVisible来操作UI的显示和销毁,以及PlayOpenAnim和PlayCloseAnim来播放打开和关闭动画。\[3\]这个框架可以帮助你更好地开发和管理Unity虚拟仿真中的UI。 #### 引用[.reference_title] - *1* [【Unity】虚拟现实 VR UI框架搭建](https://blog.csdn.net/xiaoyaoACi/article/details/121272882)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Unity UI 框架](https://blog.csdn.net/NRatel/article/details/127902181)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值