3.31下班提交

This commit is contained in:
taosuqi 2025-03-31 18:50:58 +08:00
parent 8947675bde
commit a524186365
16 changed files with 461 additions and 68 deletions

View File

@ -569,6 +569,12 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 1667aae605f3e3240a1a84e36c828b9b, type: 3}
m_Name:
m_EditorClassIdentifier:
StepsContent: {fileID: 8640685201192089303}
scrollRect: {fileID: 4703803716389869035}
StepsItem: {fileID: 1384450871409782766, guid: 23ad7fc28393e884d8be352f7a4bc49e, type: 3}
data:
pptFiles: []
jsonFileName: StepsConfig
--- !u!1 &6034407814706705595
GameObject:
m_ObjectHideFlags: 0

View File

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

View File

@ -0,0 +1,310 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &3517377995066905248
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8220550781287882066}
- component: {fileID: 1384450871409782766}
m_Layer: 5
m_Name: UI_StepsPanelItem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &8220550781287882066
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3517377995066905248}
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: 197469035156088967}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1384450871409782766
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3517377995066905248}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4abcb2cc14a5b2648b6347f023a625a0, type: 3}
m_Name:
m_EditorClassIdentifier:
Step_Text: {fileID: 8102979459814448756}
--- !u!1 &3682663510837742324
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 6404182015347172548}
- component: {fileID: 5671198552339026840}
- component: {fileID: 8102979459814448756}
m_Layer: 5
m_Name: Text (TMP)
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &6404182015347172548
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3682663510837742324}
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: 197469035156088967}
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!222 &5671198552339026840
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3682663510837742324}
m_CullTransparentMesh: 1
--- !u!114 &8102979459814448756
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3682663510837742324}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: Button
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: f8ef5cb2ab4d4da4093d3fe60f978c99, type: 2}
m_sharedMaterial: {fileID: -4829118149068189727, guid: f8ef5cb2ab4d4da4093d3fe60f978c99, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4281479730
m_fontColor: {r: 0.19607843, g: 0.19607843, b: 0.19607843, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &7283580755302669260
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 197469035156088967}
- component: {fileID: 6591772934573669198}
- component: {fileID: 5769611754716877598}
- component: {fileID: 7365484768592982085}
m_Layer: 5
m_Name: Steps_Btn
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &197469035156088967
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7283580755302669260}
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: 6404182015347172548}
m_Father: {fileID: 8220550781287882066}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 324.0635, y: 54.0943}
m_Pivot: {x: 0, y: 1}
--- !u!222 &6591772934573669198
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7283580755302669260}
m_CullTransparentMesh: 1
--- !u!114 &5769611754716877598
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7283580755302669260}
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: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 10905, guid: 0000000000000000f000000000000000, type: 0}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &7365484768592982085
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7283580755302669260}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 5769611754716877598}
m_OnClick:
m_PersistentCalls:
m_Calls: []

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 23ad7fc28393e884d8be352f7a4bc49e
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -9,7 +9,6 @@ public class Bootstrap : SingletonMono<Bootstrap>
public ScenesManager scenesManager;
[Header("路径设置")]
public string pptFolderName; // StreamingAssets下的文件夹名
private PPTConfig pptConfig;
public string[] ppts;
//string pptPath = Application.streamingAssetsPath + "/PPT/*.pptx/" ;
@ -41,6 +40,10 @@ public class Bootstrap : SingletonMono<Bootstrap>
{
Debug.Log("加载场景成功");
});
//uiManager.ShowPanel<UI_StepsPanel>(this, E_UI_Layer.System, (panel) =>
//{
// Debug.Log("加载场景成功");
//});
//Debug.Log("<color=yellow>按键S显示UI按键H关闭UI按键E控制物体变色</color>");
//uiManager.ShowPanel<UI_LoadingPanel>(this, E_UI_Layer.System, (panel) =>
//{

View File

@ -44,8 +44,8 @@ public class ScenesManager
AsyncOperation ao = SceneManager.LoadSceneAsync(sceneName, loadSceneMode);
while (!ao.isDone)
{
action?.Invoke();
yield return null;
}
action?.Invoke();
}
}

View File

@ -0,0 +1,17 @@
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
public class UI_StepsPanelItem : BaseItem
{
/// <summary>
/// 步骤文字
/// </summary>
public TextMeshProUGUI Step_Text;
public void Init(string LabelDate)
{
Step_Text.text = LabelDate;
}
}

View File

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

View File

@ -3,7 +3,7 @@ using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class UI_SelectModePanel :BasePanel
public class UI_SelectModePanel : BasePanel
{
public override void ShowMe()
@ -23,33 +23,34 @@ public class UI_SelectModePanel :BasePanel
{
Debug.Log("加载理论学习面板");
Bootstrap.Instance.uiManager.HidePanel<UI_SelectModePanel>();
Bootstrap.Instance.uiManager.HidePanel<UI_StepsPanel>();
});
//Bootstrap.Instance.uiManager.HidePanel<UI_SelectModePanel>();
break;
case "Practical assessment_Btn":
Debug.Log("加载实操考核");
Debug.Log("加载实操考核");
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.UpdateProgress, 0.1f);
Bootstrap.Instance.scenesManager.LoadSceneAsyn(this, "实操考核", () =>
{
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.UpdateProgress, 0.9f);
});
Bootstrap.Instance.uiManager.HidePanel<UI_StepsPanel>();
Bootstrap.Instance.uiManager.HidePanel<UI_SelectModePanel>();
Bootstrap.Instance.uiManager.HidePanel<UI_BGPanel>();
break;
case "theoretical examination_Btn":
Debug.Log("加载LiveScene");
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.UpdateProgress, 0.1f);
Bootstrap.Instance.scenesManager.LoadSceneAsyn(this, "LiveScene", () =>
{
Bootstrap.Instance.uiManager.ShowPanel<UI_StepsPanel>(this, E_UI_Layer.System, (panel) =>
{
Debug.Log("加载理论学习面板");
Debug.Log("加载场景成功");
Bootstrap.Instance.uiManager.HidePanel<UI_SelectModePanel>();
});
Bootstrap.Instance.eventCenter.EventTrigger(Enum_EventType.UpdateProgress, 0.9f);
});
Bootstrap.Instance.uiManager.HidePanel<UI_SelectModePanel>();
//Bootstrap.Instance.uiManager.HidePanel<UI_SelectModePanel>();
Bootstrap.Instance.uiManager.HidePanel<UI_BGPanel>();
break;
}

View File

@ -1,13 +1,57 @@
using System.Collections;
using System.Collections.Generic;
using System.IO;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class UI_StepsPanel : BasePanel
{
/// <summary>
/// 步骤预制体父物体
/// </summary>
public RectTransform StepsContent;
/// <summary>
/// 步骤滑动条
/// </summary>
public ScrollRect scrollRect;
public UI_StepsPanelItem StepsItem;
public PptFilesData data = new PptFilesData();
public string jsonFileName = "StepsConfig"; // JSON文件名
protected override void Awake()
{
base.Awake();
data = JsonManager.LoadData<PptFilesData>(jsonFileName);
foreach (var pptFile in data.pptFiles)
{
if (StepsItem == null || StepsContent == null)
{
Debug.LogError("按钮预制体或父对象未设置");
return;
}
// 实例化按钮
var item = Instantiate(StepsItem, StepsContent);
item.Init(pptFile.fileName);
var buttonText = item.GetComponentInChildren<TextMeshProUGUI>();
if (buttonText != null)
{
buttonText.text = $"{pptFile.fileName}";
}
//if (button == null)
//{
// Debug.LogError("预制体上没有Button组件");
// return;
//}
// 设置按钮文本
}
}
public override void ShowMe()
@ -22,6 +66,7 @@ public class UI_StepsPanel : BasePanel
protected override async void OnClick(string btnName)
{
Debug.Log(btnName);
await LoadPPTTest.RefreshScrollView(StepsContent, scrollRect);
switch (btnName)
{
case "retrun_Btn":
@ -30,7 +75,6 @@ public class UI_StepsPanel : BasePanel
Debug.Log("UI_StepsPanelÒѾ­ÏÔʾÔÚ" + E_UI_Layer.System);
Bootstrap.Instance.uiManager.HidePanel<UI_TipsForPracticePanel>();
});
//Bootstrap.Instance.uiManager.HidePanel<UI_TipsForPracticePanel>();
break;
default:
break;

View File

@ -1,16 +0,0 @@
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,15 @@
using System;
using System.Collections.Generic;
using UnityEngine;
[Serializable]
public class PptFile
{
public string fileName;
}
[Serializable]
public class PptFilesData
{
public List<PptFile> pptFiles;
}

View File

@ -0,0 +1,31 @@
{
"pptFiles": [
{
"fileName": "育苗前种子处理"
},
{
"fileName": "播撒育苗技术流程"
},
{
"fileName": "精细整地要求"
},
{
"fileName": "苗龄与叶龄标准"
},
{
"fileName": "移栽时机和方式管理"
},
{
"fileName": "移栽后管理"
},
{
"fileName": "田间管理"
},
{
"fileName": "病虫害防治"
},
{
"fileName": "种子收货与储藏"
}
]
}

View File

@ -1,44 +0,0 @@
{
"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"
}
]
}