1 Star 6 Fork 1

刚刚好 / Unity疫情展馆

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

展馆漫游项目

wasd 键控制人物移动漫游,space键跳跃,鼠标右键转动视角观察,鼠标左键进行操作。

  • 图片展示区域:单击图片可以弹出图文介绍

  • 视频展示区域:单击可播放视频

  • 图片轮播区域:单击切换图片显示,上一张、下一张

  • 答题区:可以进行答题互动

  • 游戏体验区:玩互动小游戏

  • 模型展示区:点击模型可以自由观察3D模型

  • 导航图:点击相关地点进行跳转。

  • 音乐播放器:听歌切歌

  • 小地图:展示缩略图

  • 小导游:可以进行导览提示

  • .......

资源导入导出

资源 ——> 导出包

可以把项目里面的所有东西打包成一个 .unitypackage为后缀名的文件。

character controller:角色控制器

给空物体添加角色控制器,充当玩家。将摄像机添加成玩家的子物体,充当眼睛。

找到方向,然后调用CharacterController组件的Move方法就能进行移动。

移动使用:Input Manager

编辑 ——> 项目设置

image-20220420145712839

轴向Axis

水平Horizontal:a为负值,d为正值、小箭头left、right...

垂直Vertical:w、s

得到水平和垂直轴向上按键后的返回的值。

得到方向

// Input.GetAxis("Horizontal")返回括号内轴向的值
myDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
// transform.TransformDirection()从自身坐标转化为世界坐标
myDirection = transform.TransformDirection(myDirection);

ScrollBar 组件添加成(拖动到) Scroll Rect的 垂直滚动条,作为滚动状态控制器。

Raw Image 无损图像(原始图像)

可用于播视频

给他添加播放视频组件:video player

using UnityEngine.Video; // 播放视频要引入头文件

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Video;
using UnityEngine.UI;

public class VideoDisplay : MonoBehaviour
{
    private RawImage raw; // RawImage组件
    private VideoPlayer video; // VideoPlayer组件


    // Start is called before the first frame update
    void Start()
    {
        raw = GetComponent<RawImage>();
        video = GetComponent<VideoPlayer>();
    }

    // Update is called once per frame
    void Update()
    {
        raw.texture = video.texture; // 让video的材质给image的材质,就能显示图像了
    }
}

video player渲染模式设置全屏

渲染模式摄像机近平面即为全屏,记得给摄像机

image-20220427110058330

if (Input.GetKey(KeyCode.F)) // 按F键视频全屏
{
  video.renderMode = VideoRenderMode.CameraNearPlane; // 渲染模式为摄像机近平面
}
if (Input.GetKey(KeyCode.Escape)) // ESC 退出全屏模式
{
  video.renderMode = VideoRenderMode.RenderTexture; // 渲染器纹理
}
// 视频静音
video.SetDirectAudioMute(0, true);

Button.interactable

false 即按钮不可点击,按钮置灰,为 true 恢复状态

读取JSON文件

定义数据模型类

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


[System.Serializable] // 序列化


public class dataModel
{
    public int[] number; // 题号字段
    public string[] title; // 题目
    public string[] A; // A选项
    public string[] B;
    public string[] C;
    public string[] D;
    public string[] answer; //答案
}

对应的JSON文件

{
    "number": [1, 2, 3, 4, 5],
    "title": ["2+5=?", "中国的首都在哪里?", "How old are you?", "国庆节是哪一天?", "2*3=?"],
    "A": ["7", "上海", "18", "10月1日", "9"],
    "B": ["2", "广州", "20", "7月1日", "6"],
    "C": ["10", "北京", "21", "6月1日", "5"],
    "D": ["3", "杭州", "22", "1月1日", "1"],
    "answer": ["A", "C", "D", "A", "B"]
}

读取赋值

dataModel obj; // 数据模型对象

// Start is called before the first frame update
void Start()
{
  // JsonUtility.FromJson<数据模型>(json字符串)
  // 将从JSON中读取的字符串转换为对应模型对象
  obj = JsonUtility.FromJson<dataModel>(LoadFromJson());

}
private string LoadFromJson() // 从JSON文件中读取数据
{
  StreamReader reader;
  string json; //读取到的字符串
  if (!File.Exists(Application.dataPath +"/data/question.json"))
  {
    print(Application.dataPath + "/data/question.json" + " 文件不存在");
    // 没有找到文件
    return null;
  }

  reader = new StreamReader(Application.dataPath + "/data/question.json"); // 分配读取文件的路径
  json = reader.ReadToEnd(); // 重头读到尾,返回字符串类型

  return json;
}

空文件

简介

疫情展馆漫游,视频播放,图片轮播,答题 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C#
1
https://gitee.com/lai_yingang/room.git
git@gitee.com:lai_yingang/room.git
lai_yingang
room
Unity疫情展馆
main

搜索帮助