3.28提交

This commit is contained in:
taosuqi 2025-03-28 18:16:55 +08:00
parent e66f6cd8a2
commit 6d619bdca4
66 changed files with 2300 additions and 12357 deletions

View File

@ -12,7 +12,7 @@ GameObject:
- component: {fileID: 8317796162834753453}
- component: {fileID: 8317796162834753452}
m_Layer: 5
m_Name: Image
m_Name: PPTImagePrefab
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

View File

@ -10,7 +10,7 @@ GameObject:
m_Component:
- component: {fileID: 6443655267442918617}
- component: {fileID: 8043462466891406436}
- component: {fileID: 8678017830761046612}
- component: {fileID: 3316953633853674145}
m_Layer: 5
m_Name: PPTImage
m_TagString: Untagged
@ -46,7 +46,7 @@ CanvasRenderer:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 811730081605563827}
m_CullTransparentMesh: 1
--- !u!114 &8678017830761046612
--- !u!114 &3316953633853674145
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -55,7 +55,7 @@ MonoBehaviour:
m_GameObject: {fileID: 811730081605563827}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Script: {fileID: 11500000, guid: 1344c3c82d62a2a41a3576d8abb8e3ea, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
@ -66,13 +66,10 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
m_Texture: {fileID: 0}
m_UVRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1

View File

@ -1,6 +1,6 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &7994108748086479452
--- !u!1 &6212634791974935075
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -8,58 +8,59 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6400873476848830831}
- component: {fileID: 7453241556539643503}
- component: {fileID: 1248336968040269999}
- component: {fileID: 6083020321915757910}
- component: {fileID: 155975402375550889}
- component: {fileID: 6483946352229624678}
- component: {fileID: 5204277206611918458}
m_Layer: 5
m_Name: Image
m_Name: UI_BGPanel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6400873476848830831
--- !u!224 &6083020321915757910
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7994108748086479452}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_GameObject: {fileID: 6212634791974935075}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2933600720887796228}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0.000017166, y: -119.20328}
m_SizeDelta: {x: 1920, y: 841.5935}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7453241556539643503
--- !u!222 &155975402375550889
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7994108748086479452}
m_GameObject: {fileID: 6212634791974935075}
m_CullTransparentMesh: 1
--- !u!114 &1248336968040269999
--- !u!114 &6483946352229624678
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7994108748086479452}
m_GameObject: {fileID: 6212634791974935075}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 0.38381097, g: 0.6509434, b: 0.39158967, a: 1}
m_Color: {r: 0.23238283, g: 0.4811321, b: 0.2246796, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
@ -76,51 +77,13 @@ MonoBehaviour:
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &9065834984604094089
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2933600720887796228}
- component: {fileID: 5678099876136864178}
m_Layer: 5
m_Name: UI_BGPanel
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &2933600720887796228
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9065834984604094089}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 6400873476848830831}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &5678099876136864178
--- !u!114 &5204277206611918458
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 9065834984604094089}
m_GameObject: {fileID: 6212634791974935075}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 341b6b7d1617ded4f822241437a72feb, type: 3}

View File

@ -9,7 +9,7 @@ GameObject:
serializedVersion: 6
m_Component:
- component: {fileID: 228523898966457139}
- component: {fileID: 5357660215879302138}
- component: {fileID: 701451915399054274}
m_Layer: 5
m_Name: UI_MainTitlePanel
m_TagString: Untagged
@ -38,7 +38,7 @@ RectTransform:
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &5357660215879302138
--- !u!114 &701451915399054274
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@ -47,11 +47,9 @@ MonoBehaviour:
m_GameObject: {fileID: 1543510285223236320}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: c24d8cc7246e86a4e9fffdf2d3bedc6a, type: 3}
m_Script: {fileID: 11500000, guid: a24acefc7cb043a4684d785031129ffd, type: 3}
m_Name:
m_EditorClassIdentifier:
imageprefab: {fileID: 0}
content: {fileID: 0}
--- !u!1 &2041505679087293799
GameObject:
m_ObjectHideFlags: 0
@ -219,7 +217,7 @@ RectTransform:
- {fileID: 82087031305995205}
- {fileID: 1353532151357166998}
m_Father: {fileID: 9015838440402927992}
m_RootOrder: 1
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
@ -282,9 +280,9 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 9132651107691883657}
- {fileID: 1230005754252223164}
- {fileID: 2421661442610507319}
- {fileID: 9132651107691883657}
m_Father: {fileID: 228523898966457139}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -343,7 +341,7 @@ GameObject:
- component: {fileID: 4115485948361818498}
- component: {fileID: 6743879196805612665}
m_Layer: 5
m_Name: Text (TMP)
m_Name: title_text
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -362,7 +360,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9015838440402927992}
m_RootOrder: 2
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
@ -632,7 +630,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 9015838440402927992}
m_RootOrder: 0
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 1}
m_AnchorMax: {x: 1, y: 1}

View File

@ -614,8 +614,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: -80.5751}
m_SizeDelta: {x: 1920, y: 918.8499}
m_AnchoredPosition: {x: 0, y: -53.583862}
m_SizeDelta: {x: 1920, y: 972.8325}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1345224029711709113
CanvasRenderer:
@ -638,7 +638,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_Color: {r: 0.59126043, g: 0.7735849, b: 0.5801887, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1

File diff suppressed because it is too large Load Diff

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 973f750c2df148842a66fd526f0434d5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +0,0 @@
using UnityEngine;
public class UI_BGPanel : BasePanel
{
public void Init()
{
}
void Start()
{
}
}

View File

@ -1,18 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UI_MainTitlePanel : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}

View File

@ -1,46 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UI_SelectModePanel :BasePanel
{
public override void ShowMe()
{
base.ShowMe();
}
public override void HideMe()
{
base.HideMe();
}
protected override void OnClick(string btnName)
{
switch (btnName)
{
case "Theoretical learning_Btn":
Bootstrap.Instance.scenesManager.LoadSceneAsyn(this, "理论学习", () =>
{
Debug.Log("加载场景成功");
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.UpdateProgress, 0.9f);
});
Bootstrap.Instance.uiManager.HidePanel<UI_SelectModePanel>();
break;
case "Practical assessment_Btn":
Bootstrap.Instance.scenesManager.LoadSceneAsyn(this, "实操考核", () =>
{
Debug.Log("加载场景成功");
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.UpdateProgress, 0.9f);
});
Bootstrap.Instance.uiManager.HidePanel<UI_SelectModePanel>();
break;
case "theoretical examination_Btn":
Bootstrap.Instance.scenesManager.LoadSceneAsyn(this, "理论学习", () =>
{
Debug.Log("理论考核");
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.UpdateProgress, 0.9f);
});
Bootstrap.Instance.uiManager.HidePanel<UI_SelectModePanel>();
break;
}
}
}

View File

@ -1,62 +0,0 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UI_TipsForPracticePanel : BasePanel
{
public GameObject imageprefab;
public Transform content;
protected override void Awake()
{
base.Awake();
}
public override void ShowMe()
{
base.ShowMe();
}
public override void HideMe()
{
base.HideMe();
}
protected override void OnClick(string btnName)
{
switch (btnName)
{
case "retrun_Btn":
Bootstrap.Instance.uiManager.HidePanel<UI_TipsForPracticePanel>();
break;
//case "1":
// LoadPPTTest.LoadPPTGO(Application.streamingAssetsPath + "/PPT/1-第一章 绪论.pptx");
// break;
//case "2":
// LoadPPTTest.Instance.LoadPPTGO(Application.streamingAssetsPath + "/PPT/2-第二章 酿酒高粱的种类及分类.pptx");
// break;
//case "3":
// LoadPPTTest.Instance.LoadPPTGO(Application.streamingAssetsPath + "/PPT/3-第三章 酿酒高粱的生长发育.pptx");
// break;
//case "4":
// LoadPPTTest.Instance.LoadPPTGO(Application.streamingAssetsPath + "/PPT/4-第四章 酿酒高粱的繁殖与育苗.pptx");
// break;
//case "5":
// LoadPPTTest.Instance.LoadPPTGO(Application.streamingAssetsPath + "/PPT/5-第五章 酿酒高粱的种植与管理.pptx");
// break;
//case "6":
// LoadPPTTest.Instance.LoadPPTGO(Application.streamingAssetsPath + "/PPT/6-第六章 酿酒高粱的采收、加工与品质控制.pptx");
// break;
//case "7":
// LoadPPTTest.Instance.LoadPPTGO(Application.streamingAssetsPath + "/PPT/7-第七章 酿造酱香型白酒糯高粱品种介绍.pptx");
// break;
//case "8":
// LoadPPTTest.Instance.LoadPPTGO(Application.streamingAssetsPath + "/PPT/8-第八章 酿酒高粱育苗技术.pptx");
// break;
//case "9":
// LoadPPTTest.Instance.LoadPPTGO(Application.streamingAssetsPath + "/PPT/9-第九章 高粱移栽技术.pptx");
// break;
//case "10":
// LoadPPTTest.Instance.LoadPPTGO(Application.streamingAssetsPath + "/PPT/10-第十章 高粱田间管理技术.pptx");
// break;
}
}
}

File diff suppressed because it is too large Load Diff

View File

@ -1,36 +1,42 @@
using System.Collections;
using Cysharp.Threading.Tasks;
using System.Collections.Generic;
using System.Diagnostics.Tracing;
using UnityEngine;
using UnityEngine.SceneManagement;
public class Bootstrap : SingletonMono<Bootstrap>
{
public UIManager uiManager;
public EventCenter eventCenter;
public ScenesManager scenesManager;
[Header("路径设置")]
public string pptFolderName; // StreamingAssets下的文件夹名
private PPTConfig pptConfig;
public string[] ppts;
//string pptPath = Application.streamingAssetsPath + "/PPT/*.pptx/" ;
protected override void Awake()
{
base.Awake();
uiManager = new UIManager();
eventCenter = new EventCenter();
scenesManager = new ScenesManager();
pptFolderName = Application.streamingAssetsPath + "/PPT";
LoadPPTTest.PPTFiles(pptFolderName);
ppts = LoadPPTTest.PPTName();
//await LoadWithUniTask();
DontDestroyOnLoad(gameObject);
}
private void Start()
{
uiManager.ShowPanel<UI_TipsForPracticePanel>(this, E_UI_Layer.System, (panel) =>
uiManager.ShowPanel<UI_MainTitlePanel>(this, E_UI_Layer.Bot, (panel) =>
{
Debug.Log("加载场景成功");
});
uiManager.ShowPanel<UI_SelectModePanel>(this, E_UI_Layer.Top, (panel) =>
{
Debug.Log("加载场景成功");
});
//Debug.Log("<color=yellow>按键S显示UI按键H关闭UI按键E控制物体变色</color>");
//uiManager.ShowPanel<UI_LoadingPanel>(this, E_UI_Layer.System, (panel) =>
//{
@ -47,26 +53,30 @@ public class Bootstrap : SingletonMono<Bootstrap>
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown("s"))
{
Debug.Log("Input.GetKeyDown(\"u\")");
uiManager.ShowPanel<UI_TestPanel>(this, E_UI_Layer.Bot, (panel) =>
{
panel.OnInit();
Debug.Log("UI_TestPanelÏÔʾ³É¹¦");
});
}
if (Input.GetKeyDown("h"))
{
Debug.Log("Input.GetKeyDown(\"h\")");
uiManager.HidePanel<UI_TestPanel>();
}
if (Input.GetKeyDown("e"))
{
Debug.Log("Input.GetKeyDown(\"e\")");
eventCenter.EventTrigger(Enum_EventType.TestEvent1);
}
//if (Input.GetKeyDown("s"))
//{
// Debug.Log("Input.GetKeyDown(\"u\")");
// uiManager.ShowPanel<UI_TestPanel>(this, E_UI_Layer.Bot, (panel) =>
// {
// panel.OnInit();
// Debug.Log("UI_TestPanel显示成功");
// });
//}
//if (Input.GetKeyDown("h"))
//{
// Debug.Log("Input.GetKeyDown(\"h\")");
// uiManager.HidePanel<UI_TestPanel>();
//}
//if (Input.GetKeyDown("e"))
//{
// Debug.Log("Input.GetKeyDown(\"e\")");
// eventCenter.EventTrigger(Enum_EventType.TestEvent1);
//}
}
//public async UniTaskVoid LoadWithUniTask(string pptpictuer)
//{
// List<Texture2D> textures = await LoadPPTTest.LoadPPTItemsAsync("myPPT");
//}
}

View File

@ -21,6 +21,7 @@ public class BasePanel : MonoBehaviour
{
FindChildrenControl<Button>();
FindChildrenControl<Image>();
FindChildrenControl<RawImage>();
FindChildrenControl<Text>();
FindChildrenControl<Toggle>();
FindChildrenControl<Slider>();

View File

@ -1,24 +1,99 @@
using Aspose.Slides;
using Aspose.Words.Lists;
using Cysharp.Threading.Tasks;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Drawing.Imaging;
using System.IO;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
public class LoadPPTTest
{
public static List<Texture2D> LoadPPTGO(string pptPath)
/// <summary>
///
/// </summary>
private static Dictionary<string, List<Texture2D>> texturesDic = new Dictionary<string, List<Texture2D>>();
/// <summary>
/// PPT所有路径
/// </summary>
private static string[] pptsPath = null;
/// <summary>
/// 加载单个课程所有图片
/// </summary>
/// <param name="pptName"></param>
/// <returns></returns>
public static List<Texture2D> LoadPPTItems(string pptName)
{
List<Texture2D> textures = new List<Texture2D>();
Presentation presentation = new Aspose.Slides.Presentation(pptPath);
//遍历文档(只做示例使用自己根据需求拓展)
string pptPath = GetPPTPathByName(pptName);
return GetTexture2DsByName(pptName, pptPath);
//target.StartCoroutine(LoadAllPPTFiles(pptPath));
}
public static string[] PPTName()
{
///切割pptsPath
return pptsPath;
}
private static List<Texture2D> GetTexture2DsByName(string pptName, string pptPath)
{
if (!texturesDic.ContainsKey(pptName))
{
texturesDic.Add(pptName, LoadAllPPTFiles(pptPath));
return LoadAllPPTFiles(pptPath);
}
else
{
foreach (var item in texturesDic.Keys)
{
if (item.Equals(pptName))
return texturesDic[item];
}
}
return null;
}
/// <summary>
/// 获取当前课程PPT目录
/// </summary>
/// <param name="pptName">名称</param>
/// <returns></returns>
private static string GetPPTPathByName(string pptName)
{
foreach (var item in pptsPath)
{
if (item.Contains(pptName))
return item;
}
return null;
}
/// <summary>
/// 获取文件夹下所有.pptx文件
/// </summary>
/// <param name="folderPath"></param>
public static void PPTFiles(string folderPath)
{
string fullPPTFolderPath = Path.Combine(Application.streamingAssetsPath, folderPath);
pptsPath = Directory.GetFiles(fullPPTFolderPath, "*.pptx");
}
public static List<Texture2D> LoadAllPPTFiles(string folderPath)
{
List<Texture2D> texture2Ds = new List<Texture2D>();
Presentation presentation = new Aspose.Slides.Presentation(folderPath);
// 遍历文档(只做示例使用自己根据需求拓展)
for (int i = 0; i < presentation.Slides.Count; i++)
{
ISlide slide = presentation.Slides[i];
var bitmap = slide.GetThumbnail(1f, 1f);
//声明内存流将图片转换为内存流再由流转换为byte数组然后用texture2d加载byte数组
// 声明内存流将图片转换为内存流再由流转换为byte数组然后用texture2d加载byte数组
using (MemoryStream ms = new MemoryStream())
{
bitmap.Save(ms, ImageFormat.Jpeg);
@ -26,23 +101,77 @@ public class LoadPPTTest
ms.Seek(0, SeekOrigin.Begin);
ms.Read(buff, 0, (int)ms.Length);
//注意这个iamge的命名空间为system.drawing不是unity.ui,这个图片的目的是提供图片的宽高
// 注意这个image的命名空间为system.drawing不是unity.ui,这个图片的目的是提供图片的宽高
System.Drawing.Image sizeImage = System.Drawing.Image.FromStream(ms);
Texture2D texture2D = new Texture2D(sizeImage.Width, sizeImage.Height);
texture2D.LoadImage(buff);
textures.Add(texture2D);
//用texture2d为精灵赋值
texture2Ds.Add(texture2D);
}
}
return textures;
Debug.Log("所有PPT加载完成");
return texture2Ds;
}
public static void GetThingsByName()
{
}
// 逐个加载每个PPT文件
}
//public class LoadPPTTest : MonoBehaviour
//{
// public static LoadPPTTest Instance;
// private void Start()
// {
// Instance = this;
// //LoadPPTTest.Instance.LoadPPTGO(Application.streamingAssetsPath + "/PPT/1-第一章 绪论.pptx");
// }
// public IEnumerator LoadPPTGOCoroutine(string pptPath ,GameObject imageprefab, Transform content)
// {
// //清理content下的旧物体
// for (int i = 0; i < content.childCount; i++)
// {
// Destroy(content.GetChild(i).gameObject);
// }
// yield return null;
// Presentation presentation = new Aspose.Slides.Presentation(pptPath);
// int totalSlides = presentation.Slides.Count;
// // 逐页处理 PPT 幻灯片
// for (int i = 0; i < totalSlides; i++)
// {
// ISlide slide = presentation.Slides[i];
// var bitmap = slide.GetThumbnail(1f, 1f);
// // 使用内存流将图片转换为 Texture2D
// using (MemoryStream ms = new MemoryStream())
// {
// bitmap.Save(ms, ImageFormat.Jpeg);
// byte[] buff = new byte[ms.Length];
// ms.Seek(0, SeekOrigin.Begin);
// ms.Read(buff, 0, (int)ms.Length);
// // 获取图片宽高
// System.Drawing.Image sizeImage = System.Drawing.Image.FromStream(ms);
// // 创建 Texture2D 并加载图片数据
// Texture2D texture2D = new Texture2D(sizeImage.Width, sizeImage.Height);
// texture2D.LoadImage(buff);
// // 实例化 Image 并设置到 content 下
// Image image = Instantiate(imageprefab, content).GetComponent<Image>();
// image.rectTransform.sizeDelta = new Vector2(sizeImage.Width, sizeImage.Height);
// image.sprite = Sprite.Create(texture2D, new Rect(0, 0, texture2D.width, texture2D.height), Vector2.zero);
// }
// // 每处理一页后暂停一帧,分散负载
// yield return null;
// }
// }
// public void LoadPPTGO(string pptPath, GameObject imageprefab, Transform content)
// {
// StartCoroutine(LoadPPTGOCoroutine(pptPath, imageprefab, content));
// }
//}

View File

@ -0,0 +1,17 @@
using UnityEngine;
public class UI_BGPanel : BasePanel
{
protected override void Awake()
{
base.Awake();
}
public override void ShowMe()
{
base.ShowMe();
}
public override void HideMe()
{
base.HideMe();
}
}

View File

@ -0,0 +1,33 @@
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
public class UI_MainTitlePanel : BasePanel
{
/// <summary>
/// 标题
/// </summary>
public TextMeshPro title_text;
/// <summary>
/// 用户名字文本
/// </summary>
public TextMeshPro UserName_text;
/// <summary>
/// 模式文本
/// </summary>
public TextMeshPro Mode_text;
protected override void Awake()
{
base.Awake();
}
public override void ShowMe()
{
base.ShowMe();
}
public override void HideMe()
{
base.HideMe();
}
}

View File

@ -0,0 +1,47 @@
using I18N.Common;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UI_SelectModePanel :BasePanel
{
public override void ShowMe()
{
base.ShowMe();
}
public override void HideMe()
{
base.HideMe();
}
protected override void OnClick(string btnName)
{
switch (btnName)
{
case "Theoretical learning_Btn":
Bootstrap.Instance.uiManager.ShowPanel<UI_TipsForPracticePanel>(this, E_UI_Layer.System, (panel) =>
{
Debug.Log(".111");
Bootstrap.Instance.uiManager.HidePanel<UI_SelectModePanel>();
});
//Bootstrap.Instance.uiManager.HidePanel<UI_SelectModePanel>();
break;
//case "Practical assessment_Btn":
// Bootstrap.Instance.scenesManager.LoadSceneAsyn(this, "实操考核", () =>
// {
// Debug.Log("加载场景成功");
// Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.UpdateProgress, 0.9f);
// });
// Bootstrap.Instance.uiManager.HidePanel<UI_SelectModePanel>();
// break;
//case "theoretical examination_Btn":
// Bootstrap.Instance.scenesManager.LoadSceneAsyn(this, "理论学习", () =>
// {
// Debug.Log("理论考核");
// Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.UpdateProgress, 0.9f);
// });
// Bootstrap.Instance.uiManager.HidePanel<UI_SelectModePanel>();
break;
}
}
}

View File

@ -22,7 +22,7 @@ public class UI_TestPanel : BasePanel
//testBtn1 = GetControl<Button>("testBtn1");
//testBtn2 = GetControl<Button>("testBtn2");
//testBtn3 = GetControl<Button>("testBtn3");
imageTest = GetControl<Image>("imageTest");
imageTest = GetControl<Image>("imagePPT");
textTest = GetControl<Text>("textTest");
Bootstrap.Instance.eventCenter.AddEventListener(Enum_EventType.TestEvent1, UI_TestPanelTestFunc1);
}

View File

@ -0,0 +1,77 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class UI_TipsForPracticePanel : BasePanel
{
public GameObject pptImagePrefab;
public Transform content;
public ScrollRect scrollRect;
protected override void Awake()
{
base.Awake();
//pptConfig = JsonManager.LoadData<PPTConfig>("pptConfig");
}
public override void ShowMe()
{
base.ShowMe();
}
public override void HideMe()
{
base.HideMe();
}
protected override void OnClick(string btnName)
{
Debug.Log(btnName);
switch (btnName)
{
case "retrun_Btn":
Bootstrap.Instance.uiManager.ShowPanel<UI_SelectModePanel>(this, E_UI_Layer.System, (panel) =>
{
Debug.Log(".1");
Bootstrap.Instance.uiManager.HidePanel<UI_TipsForPracticePanel>();
StartCoroutine(RefreshScrollView());
});
//Bootstrap.Instance.uiManager.HidePanel<UI_TipsForPracticePanel>();
break;
default:
List<Texture2D> textures = LoadPPTTest.LoadPPTItems(btnName);
if (textures != null)
{
DisplayPPT(textures);
}
StartCoroutine(RefreshScrollView());
break;
}
}
private void DisplayPPT(List<Texture2D> textures)
{
foreach (Transform child in content)
{
Destroy(child.gameObject);
}
Debug.LogError("texturesCount:"+textures.Count);
foreach (var texture in textures)
{
RawImage rawImage = pptImagePrefab.GetComponent<RawImage>();
RawImage image = Instantiate(rawImage, content);
image.texture = texture;
image.rectTransform.sizeDelta = new Vector2(texture.width, texture.height);
}
}
/// <summary>
/// 刷新右侧的滑动条
/// </summary>
/// <returns></returns>
IEnumerator RefreshScrollView()
{
yield return null; // 等待一帧
LayoutRebuilder.ForceRebuildLayoutImmediate(content as RectTransform);
scrollRect.verticalNormalizedPosition = 1; // 回到顶部
}
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7c864c3a557f32144ba8dec873d13a74
guid: af27f3b1053e06c408b99f839d4b0a25
folderAsset: yes
DefaultImporter:
externalObjects: {}

View File

@ -0,0 +1,16 @@
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[System.Serializable]
public class PPTConfig
{
public List<PPTFile> pptFiles;
}
[System.Serializable]
public class PPTFile
{
public string button;
public string fileName;
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 34deb77137bcd8e47b370042758f2bf0
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: c60541a4b53c0874684812dc6b6a9ee2
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: cd6a3303338e78d459b72c907fe89f98
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,55 +0,0 @@
当前故障信息的查看
1、当前有火警、监管、启动或反馈信息时
查看指示灯区域若故障灯没亮则没有故障信息若点亮则需要点击“F5”进入故障
信息界面读取信息。
2、当前无火警、监管、启动及反馈信息时
查看指示灯区域,若故障灯没亮,则没有故障信息;若点亮,则直接通过显示屏读取信息
当前屏蔽信息的查看
1、当前有火警、监管、故障、启动或反馈信息时
查看指示灯区域若屏蔽灯没亮则没有屏蔽信息若点亮则需要点击功能键点击“F1”
点击数字 2进入查询屏蔽部件界面读取信息。
2、当前无火警、监管、故障、启动及反馈信息时
查看指示灯区域,若屏蔽灯没亮,则没有屏蔽信息;若点亮,则直接通过显示屏读取信息
1
2
3
区域 1只有当前有火警信息时火警灯点亮该区域才会显示第 1 条火警信息的内容,
否则显示为空白
区域 2只显示当前的火警信息若当前没有火警信息则显示为空白
且报火警的设备只有火灾探测器(如烟感)及手动火灾报警按钮
区域 3只显示当前的启动和反馈信息若当前没有启动或反馈信息则显示为空白
且该启动和反馈信息里所含的设备只能是多线盘和总线盘上的设备。当多线盘和总线盘上的
启动灯和(或)反馈灯没亮时,说明当前无启动反馈信息,该区域应显示空白
情况一:当前无火警信息,但有启动或反馈信息
上图显示应为:区域 1、2 显示为空白,区域 3 显示对应启动或反馈信息
情况二:当前有火警,但无启动、反馈信息
上图显示应为:区域 1 显示第一条发生的火警信息,区域 2 显示对应的火警信息,区域 3
显示空白
情况三:当前既有火警信息,又有启动或反馈信息
上图显示应为:区域 1 显示第一条发生的火警信息,区域 2 显示对应的火警信息,区域 3
显示对应启动或反馈信息
情况四:当前既无火警,也无启动或反馈,但有监管信息及故障信息或屏蔽信息,由于监管
的显示等级大于故障和屏蔽,初始界面(上图)将变为当前的“监管信息”界面,但该界面
下方的最右侧是没有“退出”键(与一般的当前监管信息界面相比)
情况五:当前既无火警,也无启动或反馈,没有监管信息,但有故障信息及屏蔽信息(或只
有故障信息),由于故障的显示等级大于屏蔽,初始界面(上图)将变为当前“故障信息”
界面,但该界面下方的最右侧是没有“退出”键(与一般的当前故障信息界面相比)
情况六:只有屏蔽信息也是一样的变化
情况七:当前没有任何的报警信息(火警、监管、故障、屏蔽)和启动、反馈信息,则说明
当前处于正常监视状态,其初始界面显示如下图所示
学员每次登录进去,初始界面的显示应该有变化,可以在情况一、二、三、七里随机变化,
各情况变化里的当前信息的数量及内容也应会变化
图形显示装置的当前和历史信息应随这里的变化而变化
当前的电源工作状态:不能每次都是主电工作,备电准工作(主电运行灯点亮,当前故障信
息里无主电或备电故障的信息),偶尔也要变为主电工作,备电故障(主电运行灯点亮,当
前故障信息里有备电故障的信息),或主电故障,备电工作(主电运行灯熄灭,备电运行灯
点亮,当前故障信息里有主电故障的信息)
正式运行后,历史信息里的内容也需要一定的变化,如把之前操作时显示的当前信息纳入到
历史信息里去,其时间也要定期更新,不能到 2022 年,历史信息还基本都是 2021 年、2019
年的。

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ef134e6638cc1f34cb9a2196125a1924
guid: 845629668ba4fc24b8fb0ad514c78605
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 8d20797f28786024cabdefc1b0dc0bd3
guid: 93c5a98b5b89bf441ad4dd80462acfb5
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: bbb1bfe5aa28e104688f0ccbda8ceeed
guid: 8f5582f3131790d4b80c84ebc34edd91
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: b432ad7d5a8f52047add28af3d9083ea
guid: 2d97ca450d2b3804b97f1730d33b31de
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 66167747f09015441a2565f00f69a956
guid: 3368f0128c4259644b8572e85f8a43ba
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 312af28aceb316a4198f33f3c424f8b8
guid: d5bae61a102e8f946b62a3dd3caba9fa
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 9ff958a57dc2d3a4299b843aedb21a33
guid: ffd7dcbf18173c9419cd8c309c83c224
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 06636de066369264e8683640160ce330
guid: 51c57d0afcbd96e49b6e8a36be08c3a6
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c9177ddf4fd105a43831fb0696a25078
guid: 3b9743f763644fe46be7f659619670be
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: cce05d841350f6c43ac90b406c459a09
guid: 61c4768500620d94ea469fec5246affa
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 0f19e21bcd4765a42b5f3e93f99f3ea9
guid: 43d7e506a1c7dd24096f7ba066df3bff
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 7b1ba62f1d609d340bc76a33789e2d4e
guid: d3b8ee9a7c9227245b07357e35e66ab7
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: ccb27635c211be2459fb34a7169d1dab
guid: f27b325001bee0a47a2cb12feb8959fc
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a1b326f995b50514b877ebf4e98d7339
guid: a317a8a793317404f8d4a7841404d62b
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: d9135c5ab813e9d418bf70ff4195f9f1
guid: f46569889417b0345bb5dfe98e54dc76
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 3254d5ac33d898047ab8ee829b466aaa
guid: 6ef0b7a9d9a77b2499e68bf312baa55d
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 06c6d531a354cca4d994210d13793d53
guid: 94cd2ccbea12e0043b3a78800e1b7dc4
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 59b68e3c8397d2141a8afb41787f99c0
guid: 2200eae8244115b4ebd869e60a5619d2
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 77761b07bf4f2e14b8d494015dac9021
guid: d9c977276328cff4a9fcf5b6f54f67d0
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: e5706af7bb8aad0468d3c8a089d01198
guid: 5518f251922ae364f9b3d8bdd48e57ca
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: c5d49422a4e16524abd930d01545194f
guid: 7215f213941055646aad03a713d8e332
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 643711ddad486844a925bc3158a6451c
guid: 645983a86e07eb3418cf2fda1c2425c1
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 24bc1d04def54a54daf54455108851c8
guid: 326fc8661cda878408cc02249b2bd999
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 6d2394f2e13594147b20f69143f0a22c
guid: bed1b4ba1b2cc2740a6c073b8f617f28
DefaultImporter:
externalObjects: {}
userData:

View File

@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 623b60f2ccb391446a145cd8ce4eed8e
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,77 +0,0 @@
当前故障信息的查看
当前有火警、监管、启动或反馈信息时
查看指示灯区域,若故障灯没亮,则没有故障信息;若点亮,则需要点击"F5",进入故障信息界面读取信息。
当前无火警、监管、启动及反馈信息时
查看指示灯区域,若故障灯没亮,则没有故障信息;若点亮,则直接通过显示屏读取信息
当前屏蔽信息的查看
当前有火警、监管、故障、启动或反馈信息时
查看指示灯区域,若屏蔽灯没亮,则没有屏蔽信息;若点亮,则需要点击功能键,点击"F1"点击数字2进入查询屏蔽部件界面读取信息。
当前无火警、监管、故障、启动及反馈信息时
查看指示灯区域,若屏蔽灯没亮,则没有屏蔽信息;若点亮,则直接通过显示屏读取信息
3
2
1
区域1只有当前有火警信息时火警灯点亮该区域才会显示第1条火警信息的内容否则显示为空白
区域2只显示当前的火警信息若当前没有火警信息则显示为空白
且报火警的设备只有火灾探测器(如烟感)及手动火灾报警按钮
区域3只显示当前的启动和反馈信息若当前没有启动或反馈信息则显示为空白
且该启动和反馈信息里所含的设备只能是多线盘和总线盘上的设备。当多线盘和总线盘上的启动灯和(或)反馈灯没亮时,说明当前无启动反馈信息,该区域应显示空白
情况一:当前无火警信息,但有启动或反馈信息
上图显示应为区域1、2显示为空白区域3显示对应启动或反馈信息
情况二:当前有火警,但无启动、反馈信息
上图显示应为区域1显示第一条发生的火警信息区域2显示对应的火警信息区域3显示空白
情况三:当前既有火警信息,又有启动或反馈信息
上图显示应为区域1显示第一条发生的火警信息区域2显示对应的火警信息区域3显示对应启动或反馈信息
情况四:当前既无火警,也无启动或反馈,但有监管信息及故障信息或屏蔽信息,由于监管的显示等级大于故障和屏蔽,初始界面(上图)将变为当前的"监管信息"界面,但该界面下方的最右侧是没有"退出"键(与一般的当前监管信息界面相比)
情况五:当前既无火警,也无启动或反馈,没有监管信息,但有故障信息及屏蔽信息(或只有故障信息),由于故障的显示等级大于屏蔽,初始界面(上图)将变为当前"故障信息"界面,但该界面下方的最右侧是没有"退出"键(与一般的当前故障信息界面相比)
情况六:只有屏蔽信息也是一样的变化
情况七:当前没有任何的报警信息(火警、监管、故障、屏蔽)和启动、反馈信息,则说明当前处于正常监视状态,其初始界面显示如下图所示
学员每次登录进去,初始界面的显示应该有变化,可以在情况一、二、三、七里随机变化,各情况变化里的当前信息的数量及内容也应会变化
图形显示装置的当前和历史信息应随这里的变化而变化
当前的电源工作状态:不能每次都是主电工作,备电准工作(主电运行灯点亮,当前故障信息里无主电或备电故障的信息),偶尔也要变为主电工作,备电故障(主电运行灯点亮,当前故障信息里有备电故障的信息),或主电故障,备电工作(主电运行灯熄灭,备电运行灯点亮,当前故障信息里有主电故障的信息)
正式运行后历史信息里的内容也需要一定的变化如把之前操作时显示的当前信息纳入到历史信息里去其时间也要定期更新不能到2022年历史信息还基本都是2021年、2019年的。

View File

@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 116454b179b75184c989b1136f316ad8
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,44 @@
{
"pptFiles": [
{
"button": "1",
"fileName": "1-第一章 绪论.pptx"
},
{
"button": "2",
"fileName": "2-第二章 酿酒高粱的种类及分类.pptx"
},
{
"button": "3",
"fileName": "3-第三章 酿酒高粱的生长发育.pptx"
},
{
"button": "4",
"fileName": "4-第四章 酿酒高粱的繁殖与育苗.pptx"
},
{
"button": "5",
"fileName": "5-第五章 酿酒高粱的种植与管理.pptx"
},
{
"button": "6",
"fileName": "6-第六章 酿酒高粱的采收、加工与品质控制.pptx"
},
{
"button": "7",
"fileName": "7-第七章 酿造酱香型白酒糯高粱品种介绍.pptx"
},
{
"button": "8",
"fileName": "8-第八章 酿酒高粱育苗技术.pptx"
},
{
"button": "9",
"fileName": "9-第九章 高粱移栽技术.pptx"
},
{
"button": "10",
"fileName": "10-第十章 高粱田间管理技术.pptx"
}
]
}

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: a379566df3b2636469557c9bf06fe30b
guid: cd056392319b8404c96184c3187f8ebd
DefaultImporter:
externalObjects: {}
userData: