Merge remote-tracking branch 'origin/master' into LouDi_Pig
This commit is contained in:
commit
a318a9c0d7
@ -468,6 +468,7 @@ MonoBehaviour:
|
||||
Training: {fileID: 2329671978117574524}
|
||||
Operation: {fileID: 616562839221942952}
|
||||
TrainContent: {fileID: 5869372504899619242}
|
||||
ContentText: {fileID: 2630179459340483145}
|
||||
OperationContent: {fileID: 3768800539522999701}
|
||||
ConfirmBtn: {fileID: 783019177237190269}
|
||||
--- !u!1 &2550146359932684284
|
||||
@ -1805,6 +1806,7 @@ GameObject:
|
||||
- component: {fileID: 1747114938129779637}
|
||||
- component: {fileID: 6155234247361610581}
|
||||
- component: {fileID: 2630179459340483145}
|
||||
- component: {fileID: 956712290457367647}
|
||||
m_Layer: 5
|
||||
m_Name: ContentText
|
||||
m_TagString: Untagged
|
||||
@ -1928,6 +1930,22 @@ MonoBehaviour:
|
||||
m_hasFontAssetChanged: 0
|
||||
m_baseMaterial: {fileID: 0}
|
||||
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
||||
--- !u!114 &956712290457367647
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 8301949965222141633}
|
||||
m_Enabled: 1
|
||||
m_EditorHideFlags: 0
|
||||
m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
MarkType: 0
|
||||
CustomComponentName:
|
||||
CustomComment:
|
||||
mComponentName: TMPro.TextMeshProUGUI
|
||||
--- !u!1 &8662634946358023954
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@ -522,7 +522,7 @@ RectTransform:
|
||||
m_ConstrainProportionsScale: 0
|
||||
m_Children:
|
||||
- {fileID: 7464141640143892343}
|
||||
- {fileID: 3051202814640239909}
|
||||
- {fileID: 4775158531114985421}
|
||||
- {fileID: 642645979159612403}
|
||||
m_Father: {fileID: 8969698929162076767}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
@ -1055,7 +1055,7 @@ RectTransform:
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 6746250251467292074}
|
||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||
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
|
||||
@ -1063,7 +1063,7 @@ RectTransform:
|
||||
- {fileID: 1684458048730538019}
|
||||
- {fileID: 5860908020037853715}
|
||||
- {fileID: 8568704472119011922}
|
||||
m_Father: {fileID: 5675325337001315481}
|
||||
m_Father: {fileID: 4775158531114985421}
|
||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||
m_AnchorMin: {x: 0.5, y: 0.5}
|
||||
m_AnchorMax: {x: 0.5, y: 0.5}
|
||||
@ -1183,3 +1183,79 @@ MonoBehaviour:
|
||||
m_FillOrigin: 0
|
||||
m_UseSpriteMesh: 0
|
||||
m_PixelsPerUnitMultiplier: 1
|
||||
--- !u!1 &9141652036248099059
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4775158531114985421}
|
||||
- component: {fileID: 5397078064978493576}
|
||||
- component: {fileID: 6634696415031054332}
|
||||
m_Layer: 0
|
||||
m_Name: IconBg
|
||||
m_TagString: Untagged
|
||||
m_Icon: {fileID: 0}
|
||||
m_NavMeshLayer: 0
|
||||
m_StaticEditorFlags: 0
|
||||
m_IsActive: 1
|
||||
--- !u!224 &4775158531114985421
|
||||
RectTransform:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9141652036248099059}
|
||||
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: 3051202814640239909}
|
||||
m_Father: {fileID: 5675325337001315481}
|
||||
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: 0}
|
||||
m_SizeDelta: {x: 76, y: 76}
|
||||
m_Pivot: {x: 0.5, y: 0.5}
|
||||
--- !u!222 &5397078064978493576
|
||||
CanvasRenderer:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9141652036248099059}
|
||||
m_CullTransparentMesh: 1
|
||||
--- !u!114 &6634696415031054332
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_GameObject: {fileID: 9141652036248099059}
|
||||
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.07058824, g: 0.15686275, b: 0.19607843, a: 1}
|
||||
m_RaycastTarget: 0
|
||||
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
||||
m_Maskable: 1
|
||||
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
|
||||
|
||||
@ -18,6 +18,8 @@ public class ActionHelper
|
||||
{ "UIHint", typeof(QFramework.Example.UIHint) },
|
||||
{ "UIPointQuestion", typeof(QFramework.Example.UIPointQuestion) },
|
||||
{ "UICameraSwitch", typeof(QFramework.Example.UICameraSwitch) },
|
||||
{ "UIInstruction", typeof(QFramework.Example.UIInstruction) },
|
||||
{ "UIScore", typeof(QFramework.Example.UIScore) },
|
||||
|
||||
};
|
||||
|
||||
|
||||
@ -4,8 +4,6 @@ using UnityEditor;
|
||||
using System.Collections;
|
||||
using System.IO;
|
||||
using System.Text.RegularExpressions;
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
|
||||
public class FbxAnimListPostprocessor : MonoBehaviour
|
||||
@ -17,6 +15,48 @@ public class FbxAnimListPostprocessor : MonoBehaviour
|
||||
if (null != obj)
|
||||
{
|
||||
string assetPath = AssetDatabase.GetAssetPath(obj);
|
||||
SplitAnim(assetPath);
|
||||
}
|
||||
}
|
||||
|
||||
[MenuItem("Assets/SplitAnimFloder")]
|
||||
public static void SetAplitAnim()
|
||||
{
|
||||
Object[] selectedObjects = Selection.GetFiltered<Object>(SelectionMode.DeepAssets);
|
||||
foreach (Object obj in selectedObjects)
|
||||
{
|
||||
if (obj != null)
|
||||
{
|
||||
string path = AssetDatabase.GetAssetPath(obj);
|
||||
if (Directory.Exists(path))
|
||||
{
|
||||
EnableFBXReadWriteInFolder(path);
|
||||
}
|
||||
else if (path.EndsWith(".fbx", System.StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
EnableFBXReadWriteForFile(path);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
public static void EnableFBXReadWriteInFolder(string folderPath)
|
||||
{
|
||||
string[] files = Directory.GetFiles(folderPath, "*.fbx", SearchOption.AllDirectories);
|
||||
foreach (string file in files)
|
||||
{
|
||||
EnableFBXReadWriteForFile(file);
|
||||
}
|
||||
}
|
||||
|
||||
public static void EnableFBXReadWriteForFile(string filePath)
|
||||
{
|
||||
string relativePath = filePath;
|
||||
SplitAnim(filePath, true);
|
||||
}
|
||||
|
||||
|
||||
public static void SplitAnim(string assetPath, bool autoImport = false)
|
||||
{
|
||||
try
|
||||
{
|
||||
string fileAnim;
|
||||
@ -26,6 +66,20 @@ public class FbxAnimListPostprocessor : MonoBehaviour
|
||||
string sAnimList = file.ReadToEnd();
|
||||
file.Close();
|
||||
//
|
||||
if (autoImport)
|
||||
{
|
||||
System.Collections.ArrayList List = new ArrayList();
|
||||
ParseAnimFile(sAnimList, ref List);
|
||||
|
||||
ModelImporter modelImporter = ModelImporter.GetAtPath(assetPath) as ModelImporter;
|
||||
modelImporter.animationType = ModelImporterAnimationType.Legacy;
|
||||
//modelImporter.clipAnimations. = true;
|
||||
modelImporter.clipAnimations = (ModelImporterClipAnimation[])
|
||||
List.ToArray(typeof(ModelImporterClipAnimation));
|
||||
AssetDatabase.ImportAsset(assetPath);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (EditorUtility.DisplayDialog("FBX Animation Import from file",
|
||||
fileAnim, "Import", "Cancel"))
|
||||
{
|
||||
@ -44,10 +98,11 @@ public class FbxAnimListPostprocessor : MonoBehaviour
|
||||
+ modelImporter.clipAnimations.GetLength(0).ToString(), "OK");
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
catch { }
|
||||
// (Exception e) { EditorUtility.DisplayDialog("Imported animations", e.Message, "OK"); }
|
||||
}
|
||||
}
|
||||
|
||||
static void ParseAnimFile(string sAnimList, ref System.Collections.ArrayList List)
|
||||
{
|
||||
@ -69,13 +124,20 @@ public class FbxAnimListPostprocessor : MonoBehaviour
|
||||
}
|
||||
if (match.Groups["loop"].Success)
|
||||
{
|
||||
clip.loop = match.Groups["loop"].Value == "loop";
|
||||
if (match.Groups["loop"].Value == "loop")
|
||||
{
|
||||
clip.loop = true;
|
||||
clip.wrapMode = WrapMode.Loop;
|
||||
}
|
||||
else
|
||||
{
|
||||
clip.loop = false;
|
||||
}
|
||||
}
|
||||
if (match.Groups["name"].Success)
|
||||
{
|
||||
clip.name = match.Groups["name"].Value;
|
||||
}
|
||||
|
||||
List.Add(clip);
|
||||
|
||||
match = regexString.Match(sAnimList, match.Index + match.Length);
|
||||
|
||||
@ -27,6 +27,9 @@ public class SetReadWrite : Editor
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public static void EnableFBXReadWriteInFolder(string folderPath)
|
||||
{
|
||||
string[] files = Directory.GetFiles(folderPath, "*.fbx", SearchOption.AllDirectories);
|
||||
|
||||
@ -47,9 +47,17 @@ public class DeviceItem : MonoBehaviour
|
||||
bool isActive = true;
|
||||
bool.TryParse(obj[0], out isActive);
|
||||
if (obj.Length == 1 || (obj.Length > 1 && obj[1] == device.Name))
|
||||
{
|
||||
var high = gameObject.GetComponent<HighlightTrigger>();
|
||||
if (high != null)
|
||||
{
|
||||
gameObject.GetComponent<HighlightTrigger>().enabled = isActive;
|
||||
}
|
||||
else
|
||||
{
|
||||
Debug.LogError(device.Name + "身上没有高亮组件");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
5
Assets/Scripts/UI/UIInstruction.Designer.cs
generated
5
Assets/Scripts/UI/UIInstruction.Designer.cs
generated
@ -5,7 +5,7 @@ using QFramework;
|
||||
|
||||
namespace QFramework.Example
|
||||
{
|
||||
// Generate Id:b1c63efb-a7a0-4270-8cd9-08f25e4d69b5
|
||||
// Generate Id:031f03df-56cd-4f22-b0e4-b4cc8ddb2f1a
|
||||
public partial class UIInstruction
|
||||
{
|
||||
public const string Name = "UIInstruction";
|
||||
@ -17,6 +17,8 @@ namespace QFramework.Example
|
||||
[SerializeField]
|
||||
public RectTransform TrainContent;
|
||||
[SerializeField]
|
||||
public TMPro.TextMeshProUGUI ContentText;
|
||||
[SerializeField]
|
||||
public UnityEngine.UI.Image OperationContent;
|
||||
[SerializeField]
|
||||
public UnityEngine.UI.Button ConfirmBtn;
|
||||
@ -28,6 +30,7 @@ namespace QFramework.Example
|
||||
Training = null;
|
||||
Operation = null;
|
||||
TrainContent = null;
|
||||
ContentText = null;
|
||||
OperationContent = null;
|
||||
ConfirmBtn = null;
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@ using UnityEngine;
|
||||
using UnityEngine.UI;
|
||||
using QFramework;
|
||||
using TMPro;
|
||||
using System.Diagnostics.Eventing.Reader;
|
||||
|
||||
namespace QFramework.Example
|
||||
{
|
||||
@ -47,6 +48,15 @@ namespace QFramework.Example
|
||||
|
||||
protected override void OnOpen(IUIData uiData = null)
|
||||
{
|
||||
if (string.IsNullOrEmpty(Global.Instance.curModule.Descript))
|
||||
{
|
||||
|
||||
ContentText.text = "没有Descript相关配置";
|
||||
}
|
||||
else
|
||||
{
|
||||
ContentText.text = Global.Instance.curModule.Descript;
|
||||
}
|
||||
}
|
||||
|
||||
protected override void OnShow()
|
||||
|
||||
@ -34,6 +34,8 @@ namespace QFramework.Example
|
||||
protected override void OnOpen(IUIData uiData = null)
|
||||
{
|
||||
Content.RemoveAllChildren();
|
||||
int moduleCount = 0;
|
||||
int lastIndex = 0;
|
||||
for (int i = 0; i < Global.Instance.appData.Modules.Count; i++)
|
||||
{
|
||||
var item = Global.Instance.appData.Modules[i];
|
||||
@ -42,6 +44,7 @@ namespace QFramework.Example
|
||||
|
||||
if (curType == Global.appTpe || curType == Global.AppType.All)
|
||||
{
|
||||
moduleCount++;
|
||||
int index = i;
|
||||
GameObject obj = GameObject.Instantiate(BtnItem.gameObject, Content);
|
||||
obj.transform.Find("Label").GetComponent<TextMeshProUGUI>().text = item.ModuleName;
|
||||
@ -54,10 +57,22 @@ namespace QFramework.Example
|
||||
SceneManager.sceneLoaded += OnLoadFinished;
|
||||
});
|
||||
});
|
||||
lastIndex = index;
|
||||
}
|
||||
}
|
||||
|
||||
if (moduleCount == 1)
|
||||
{
|
||||
Global.Instance.curModule = Global.Instance.appData.Modules[lastIndex];
|
||||
UIKit.OpenPanelAsync<UILoading>(canvasLevel: UILevel.PopUI).ToAction().StartGlobal(() =>
|
||||
{
|
||||
SceneManager.LoadSceneAsync(Global.Instance.curModule.Scene, LoadSceneMode.Single);
|
||||
SceneManager.sceneLoaded += OnLoadFinished;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -35,7 +35,7 @@ namespace QFramework.Example
|
||||
|
||||
scoreBtn.onClick.AddListener(() =>
|
||||
{
|
||||
UIKit.OpenPanelAsync<UIScore>().ToAction().StartGlobal();
|
||||
UIKit.OpenPanelAsync<UIScore>(canvasLevel: UILevel.PopUI).ToAction().StartGlobal();
|
||||
});
|
||||
}
|
||||
|
||||
@ -65,10 +65,10 @@ namespace QFramework.Example
|
||||
case Global.AppType.UnKnow:
|
||||
break;
|
||||
case Global.AppType.Study:
|
||||
Score.gameObject.SetActive(true);
|
||||
Score.gameObject.SetActive(false);
|
||||
break;
|
||||
case Global.AppType.Exam:
|
||||
Score.gameObject.SetActive(false);
|
||||
Score.gameObject.SetActive(true);
|
||||
break;
|
||||
case Global.AppType.All:
|
||||
break;
|
||||
|
||||
@ -61,6 +61,8 @@ namespace QFramework.Example
|
||||
sum += float.Parse(item.Value.sum);
|
||||
score += item.Value.value;
|
||||
}
|
||||
this.Score.text = score.ToString();
|
||||
this.Sum.text = sum.ToString();
|
||||
}
|
||||
|
||||
protected override void OnShow()
|
||||
|
||||
@ -60,7 +60,7 @@ namespace QFramework.Example
|
||||
Debug.Log(item.Name + "????");
|
||||
obj.name = item.Name;
|
||||
obj.transform.Find("Name").GetComponent<TextMeshProUGUI>().text = item.Name;
|
||||
Image icon = obj.transform.Find("Icon").GetComponent<Image>();
|
||||
Image icon = obj.transform.Find("IconBg/Icon").GetComponent<Image>();
|
||||
var localImageUrl = Global.deviceIconsPath + item.Icon;
|
||||
GameObject right = icon.transform.Find("Right").gameObject;
|
||||
GameObject wrong = icon.transform.Find("Wrong").gameObject;
|
||||
@ -125,7 +125,7 @@ namespace QFramework.Example
|
||||
|
||||
public void SetSelected(GameObject item, bool isRight)
|
||||
{
|
||||
Transform icon = item.transform.Find("Icon");
|
||||
Transform icon = item.transform.Find("IconBg/Icon");
|
||||
GameObject right = icon.Find("Right").gameObject;
|
||||
GameObject wrong = icon.Find("Wrong").gameObject;
|
||||
GameObject Selected = icon.Find("Selected").gameObject;
|
||||
|
||||
@ -22,6 +22,7 @@ namespace XMLTool
|
||||
public string type { get; set; }
|
||||
public string Scene { get; set; }
|
||||
public string ModuleName { get; set; }
|
||||
public string Descript { get; set; }
|
||||
public List<Operation> Operations { get; set; }
|
||||
public List<Device> Devices { get; set; }
|
||||
|
||||
@ -186,6 +187,7 @@ namespace XMLTool
|
||||
// 解析模块名称
|
||||
module.type = moduleElement.Element("Type")?.Value;
|
||||
module.ModuleName = moduleElement.Element("Name")?.Value;
|
||||
module.Descript = moduleElement.Element("Descript")?.Value;
|
||||
module.Scene = moduleElement.Element("Scene")?.Value;
|
||||
|
||||
// 解析设备
|
||||
|
||||
@ -155,6 +155,10 @@
|
||||
<!--模块名字-->
|
||||
<Name>模块1</Name>
|
||||
|
||||
<Descript>
|
||||
这里是实训描述内容.....
|
||||
巴拉巴拉....
|
||||
</Descript>
|
||||
<Device>
|
||||
<Name>组织钳</Name>
|
||||
<HighLight color="255,255,255"/>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user