Compare commits

..

No commits in common. "ca8a3ff2a16c7085c7e182bd04f04e179f27b703" and "91c84e5df84d41498ea67d7c933c2c411f585386" have entirely different histories.

11 changed files with 15 additions and 3194 deletions

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -1,145 +0,0 @@
using System.Collections.Generic;
using TMPro;
using UnityEngine.UI;
namespace ZC
{
[UIType(UIType.AnswerUI)]
public class AnswerUI : UIBase
{
private TMP_Text txt_Title;
private TMP_Text txt_TrueOption;
private TMP_Text txt_JXContent;
private TMP_Text txt_Label0;
private TMP_Text txt_Label1;
private TMP_Text txt_Label2;
private TMP_Text txt_Label3;
private Toggle tog_Option0;
private Toggle tog_Option1;
private Toggle tog_Option2;
private Toggle tog_Option3;
private Button btn_Last;
private Button btn_Close;
private Button btn_Next;
private QuestionBankData _bankData;
private int currentIndex = 0;
public override void Init()
{
base.Init();
txt_Title = _uiGameObjectBinding.GetValue("txt_Title").GetComponent<TMP_Text>();
txt_TrueOption = _uiGameObjectBinding.GetValue("txt_TrueOption").GetComponent<TMP_Text>();
txt_JXContent = _uiGameObjectBinding.GetValue("txt_JXContent").GetComponent<TMP_Text>();
txt_Label0 = _uiGameObjectBinding.GetValue("txt_Label0").GetComponent<TMP_Text>();
txt_Label1 = _uiGameObjectBinding.GetValue("txt_Label1").GetComponent<TMP_Text>();
txt_Label2 = _uiGameObjectBinding.GetValue("txt_Label2").GetComponent<TMP_Text>();
txt_Label3 = _uiGameObjectBinding.GetValue("txt_Label3").GetComponent<TMP_Text>();
tog_Option0 = _uiGameObjectBinding.GetValue("tog_Option0").GetComponent<Toggle>();
tog_Option1 = _uiGameObjectBinding.GetValue("tog_Option1").GetComponent<Toggle>();
tog_Option2 = _uiGameObjectBinding.GetValue("tog_Option2").GetComponent<Toggle>();
tog_Option3 = _uiGameObjectBinding.GetValue("tog_Option3").GetComponent<Toggle>();
btn_Last = _uiGameObjectBinding.GetValue("btn_Last").GetComponent<Button>();
btn_Close = _uiGameObjectBinding.GetValue("btn_Close").GetComponent<Button>();
btn_Next = _uiGameObjectBinding.GetValue("btn_Next").GetComponent<Button>();
btn_Last.onClick.AddListener(ClickLastButton);
btn_Close.onClick.AddListener(ClickCloseButton);
btn_Next.onClick.AddListener(ClickNextButton);
// 读取题库
_bankData = new QuestionBankData();
}
public override void Dispose()
{
base.Dispose();
btn_Last.onClick.RemoveListener(ClickLastButton);
btn_Close.onClick.RemoveListener(ClickCloseButton);
btn_Next.onClick.RemoveListener(ClickNextButton);
}
private void ClickNextButton()
{
currentIndex++;
SetUIContent(_bankData.AnswerDatas[currentIndex]);
}
private void ClickCloseButton()
{
throw new System.NotImplementedException();
}
private void ClickLastButton()
{
currentIndex--;
SetUIContent(_bankData.AnswerDatas[currentIndex]);
}
public void SetQuestionBankData(QuestionBankData bankData)
{
this._bankData = bankData;
}
private void InitAnswer()
{
currentIndex = 0;
SetUIContent(_bankData.AnswerDatas[currentIndex]);
}
private void SetUIContent(AnswerData data)
{
currentIndex = data.index;
txt_Title.text = data.title;
txt_Label0.text = data.options[0].content;
txt_Label1.text = data.options[1].content;
txt_Label2.text = data.options[2].content;
txt_Label3.text = data.options[3].content;
txt_TrueOption.text = data.trueOption;
txt_JXContent.text = data.analyze;
tog_Option0.isOn = false;
tog_Option1.isOn = false;
tog_Option2.isOn = false;
tog_Option3.isOn = false;
if (currentIndex >= _bankData.AnswerDatas.Count - 1) // 最后一题
{
btn_Next.gameObject.SetActive(false);
// 提交按钮显示
}
else if (currentIndex <= 0) // 第一题
{
btn_Last.gameObject.SetActive(false);
}
else
{
btn_Last.gameObject.SetActive(true);
btn_Next.gameObject.SetActive(true);
}
}
}
public class QuestionBankData
{
public List<AnswerData> AnswerDatas = new List<AnswerData>();
}
public class AnswerData
{
public int index;
public string title;
public List<OptionData> options = new List<OptionData>();
public string trueOption;
public string analyze;
}
public class OptionData
{
public string content;
public bool isTrue;
// public string analyze;
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 6671bdd083df41728c3ff3db6378756f
timeCreated: 1729952500

View File

@ -4,7 +4,7 @@ using UnityEngine;
namespace ZC
{
[AttributeUsage(AttributeTargets.Class)]
class UITypeAttribute : Attribute
class UITypeAttribute: Attribute
{
public UIType UIType { get; set; }
@ -26,12 +26,10 @@ namespace ZC
public bool isActive => _isActive;
public GameObject self => _self;
protected GameObjectBinding _uiGameObjectBinding;
public void SetGameObject(GameObject gameObject, bool isPause = true, bool isActive = false)
{
this._self = gameObject;
_uiGameObjectBinding = _self.GetComponent<GameObjectBinding>();
}
public virtual void Init()

View File

@ -1,43 +0,0 @@
using System;
using System.Collections.Generic;
using Sirenix.OdinInspector;
using UnityEngine;
namespace ZC
{
public class GameObjectBinding : MonoBehaviour
{
[SerializeField] private List<GameObjectBindingData> Datas = new List<GameObjectBindingData>();
public GameObject GetValue(string nameStr)
{
foreach (var data in Datas)
{
if (data.name == nameStr)
{
return data.go;
}
}
throw new NullReferenceException($"没有找到绑定这个名字的物体name{nameStr}");
}
}
[System.Serializable]
public class GameObjectBindingData
{
[HorizontalGroup("aaa")] [LabelText("k"), LabelWidth(10)]
public string name;
[HorizontalGroup("aaa")] [LabelText("v"), LabelWidth(10)] [OnValueChanged(nameof(OnValueChanged))]
public GameObject go;
private void OnValueChanged()
{
if (go != null)
name = go.name;
else
name = string.Empty;
}
}
}

View File

@ -1,3 +0,0 @@
fileFormatVersion: 2
guid: 786137fdc2d9480690499e6f4964e8b2
timeCreated: 1729953001

View File

@ -3,8 +3,7 @@
public enum UIType
{
LoadingUI,
GameUI,
AnswerUI,
GameUI
}
public enum UILayer

View File

@ -16,9 +16,7 @@ namespace Unity.Loader
ZCGame zcGame;
private float time;
private GlobalData _globalData;
public GlobalData Data => _globalData;
DateTime startTime;
private void Awake()
{
@ -28,21 +26,14 @@ namespace Unity.Loader
private void Start()
{
this._initializePackage = new InitializePackage(playMode, this.packageName, FinishCallback);
_globalData = new GlobalData();
startTime = System.DateTime.Now;
}
private void Update()
{
time += Time.fixedTime;
// Debug.Log($"{_globalData.runTimeStr}");
}
private void OnDestroy()
{
_globalData.Dispose();
var timeSpan = System.DateTime.Now - startTime;
Debug.Log($"{timeSpan:c}");
}
private void FinishCallback()

View File

@ -1,27 +1,20 @@
using System;
using UnityEngine;
namespace Unity.Loader
{
public class GlobalData
{
private DateTime _startTime;
private DateTime _endTime;
private TimeSpan _runTime => System.DateTime.Now - _startTime;
public string runTimeStr => $"{_runTime:hh\\:mm\\:ss}";
public string runTimeStr => $"{_runTime:c}";
private int _score;
public int score => _score;
public GlobalData()
{
_startTime = DateTime.Now;
_score = 0;
}
public void Dispose()
{
Debug.Log($"程序运行时长:{runTimeStr}");
}
}
}

View File

@ -38,6 +38,7 @@ RenderSettings:
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.44657898, g: 0.4964133, b: 0.5748178, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
@ -1031,7 +1032,7 @@ RectTransform:
m_Father: {fileID: 1770513432}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 114.3303, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
@ -1092,7 +1093,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!224 &767437781
RectTransform:
m_ObjectHideFlags: 0
@ -2769,7 +2770,7 @@ RectTransform:
m_Father: {fileID: 1923750501}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 10, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
@ -3779,7 +3780,7 @@ MonoBehaviour:
m_UiScaleMode: 1
m_ReferencePixelsPerUnit: 100
m_ScaleFactor: 1
m_ReferenceResolution: {x: 1920, y: 1080}
m_ReferenceResolution: {x: 1080, y: 1920}
m_ScreenMatchMode: 0
m_MatchWidthOrHeight: 0
m_PhysicalUnit: 3