Sfoglia il codice sorgente

Merge branch '工具库更改' into feature/检修流程序列

# Conflicts:
#	OperationUIFrame/OperationUIFrameV2/Scripts/UI/ToolLibraryForm.cs
CHIVA\bj 5 mesi fa
parent
commit
86a95995bc

+ 53 - 0
Framework/SimulationToolDev/AnimationDriver/AnimationDriver-Example/AniDriver_PlayAudioClip.cs

@@ -0,0 +1,53 @@
+using ChivaXR;
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class AniDriver_PlayAudioClip : AnimationDriverBase
+{
+    public AudioClip m_AudioClip;
+
+    public override void FinishedState()
+    {
+        
+    }
+
+    public override void InitState()
+    {
+        
+    }
+
+    public override void StartPlay(Action finishedCallBack = null)
+    {
+        if (m_AudioClip == null)
+        {
+            finishedCallBack();
+        }
+        else
+        {
+            StartAniCoroutine(WaitAudioClipLength(finishedCallBack));
+        }
+    }
+
+
+    IEnumerator WaitAudioClipLength(Action finishedCallBack = null)
+    {
+        GameObject tmpObj = new GameObject();
+
+        AudioSource tmpAudioSource = tmpObj.AddComponent<AudioSource>();
+        
+        tmpAudioSource.playOnAwake = false;
+
+        tmpAudioSource.clip = m_AudioClip;
+
+        tmpAudioSource.Play();
+
+        yield return new WaitForSeconds(m_AudioClip.length);
+
+        tmpAudioSource.Stop();
+
+        finishedCallBack?.Invoke();
+    }
+
+}

+ 11 - 0
Framework/SimulationToolDev/AnimationDriver/AnimationDriver-Example/AniDriver_PlayAudioClip.cs.meta

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

+ 26 - 2
Framework/SimulationToolDev/CVR_Interactable/Example/Scripts/OperationData-Example/OPTrigger_SelectToolElemet.cs

@@ -14,6 +14,29 @@ public class OPTrigger_SelectToolElemet : OperationData_TriggerMode
 
     ToolConfigProxy m_ToolConfigProxy;
 
+    [Button("搜索场景内使用到的工具")]
+    public void SearchTools()
+    {
+        OpTrigger_ToolPack[] tmpToolPacks = FindObjectsOfType<OpTrigger_ToolPack>();
+
+        choseToolNames.Clear();
+
+        foreach (var toolPackItem in tmpToolPacks)
+        {
+            if (toolPackItem.useTool)
+            {
+                foreach (var toolName in toolPackItem.choseToolNames)
+                {
+                    if (!choseToolNames.Contains(toolName))
+                    {
+                        choseToolNames.Add(toolName);
+                    }
+                }
+            }
+        }
+    }
+
+
     private bool isFinish;
 
     public override void SetDataStateValue(float value)
@@ -38,8 +61,9 @@ public class OPTrigger_SelectToolElemet : OperationData_TriggerMode
                     UIKit.OpenPanel<ToolLibraryForm>(new ToolLibraryFormData()
                     {
                         toolLibraryType = ToolLibraryType.ToolRoom,
-                        selectAction = Check
-                    });
+                        selectAction = Check,
+                        rightTools = choseToolNames
+                    }); 
                 }
                 OperateSetting.Instance.m_CurrentStepRightToolNames = choseToolNames;
                 break;

+ 10 - 1
OperationUIFrame/OperationUIFrameV2/Scripts/UI/ToolLibraryForm.cs

@@ -30,6 +30,11 @@ namespace QFramework
         /// 正常情况下不用使用该回调,这是为ToolLibrarySelectElement单加的模式
         /// </summary>
         public Action selectAction;
+
+        /// <summary>
+        /// 这是为ToolLibrarySelectElement单加的模式
+        /// </summary>
+        public List<string> rightTools;
     }
     public partial class ToolLibraryForm : UIPanel
     {
@@ -37,6 +42,9 @@ namespace QFramework
 
         public ToolConfigProxy m_ToolConfigProxy;
 
+        //工具间中用到
+        public List<string> rightToolsForToolRoom = new List<string>();
+
         protected override void OnInit(IUIData uiData = null)
         {
             mData = uiData as ToolLibraryFormData ?? new ToolLibraryFormData();
@@ -52,7 +60,8 @@ namespace QFramework
             m_ToolConfigProxy.m_CurrentToolLibraryType = mData.toolLibraryType;
 
             CloseBtn.gameObject.SetActive(mData.selectAction == null);
-                      
+
+            rightToolsForToolRoom = mData.rightTools;
         }
 
         protected override void OnOpen(IUIData uiData = null)

+ 11 - 3
OperationUIFrame/OperationUIFrameV2/Scripts/UI/ToolLibraryForm/ToolLibrarySelectElement.cs

@@ -95,10 +95,18 @@ namespace QFramework
                 ToolConfigInfo tmpInfo = m_ToolConfigProxy.GetTooConfigInfoByToolName(item);
 
                 ToolConfigInfo tmpToolConfigInfo = m_ToolConfigInfos.Find(t => t.id == tmpInfo.id);
-                m_ToolConfigInfos.Remove(tmpToolConfigInfo);
-                m_ToolConfigInfos.Insert(0, tmpToolConfigInfo);
 
-                m_NeedHightToolConfigInfos.Add(tmpInfo);
+                if (tmpToolConfigInfo == null)
+                {
+                    Debug.LogError("背包中为查找到名为为" + tmpInfo.toolName + "的工具,请检查");
+                }
+                else
+                {
+                    m_ToolConfigInfos.Remove(tmpToolConfigInfo);
+                    m_ToolConfigInfos.Insert(0, tmpToolConfigInfo);
+
+                    m_NeedHightToolConfigInfos.Add(tmpInfo);
+                }
             }
         }
 

+ 31 - 24
OperationUIFrame/OperationUIFrameV2/Scripts/UI/ToolLibraryForm/ToolLibrarySelectElement/ToolItemPrefab.cs

@@ -45,8 +45,27 @@ namespace QFramework
             {
                 case ToolLibraryType.ToolRoom:
 
-                    if (m_ToolConfigProxy.GetToolConfigInfoFromCTRSTCIsById(int.Parse(toolConfigInfo.id)) != null) SetButtonState(BtnState.select);
-                    else SetButtonState(BtnState.normal);
+                    if (m_ToolConfigProxy.GetToolConfigInfoFromCTRSTCIsById(int.Parse(toolConfigInfo.id)) != null)
+                    {
+                      
+                        if (OperateSetting.Instance.ToolPackUILogic.GetHint())
+                        {
+                            SetButtonState(BtnState.select);
+                        }
+
+                        ShowHighter(false);
+                    }
+                    else if (UIKit.GetPanel<ToolLibraryForm>().rightToolsForToolRoom.Contains(toolConfigInfo.toolName))
+                    {
+                        if (OperateSetting.Instance.ToolPackUILogic.GetHint())
+                        {
+                            ShowHighter(true);
+                        }
+                    }
+                    else 
+                    {
+                        SetButtonState(BtnState.normal);
+                    }
 
                     break;
                 case ToolLibraryType.ToolKit:
@@ -126,12 +145,21 @@ namespace QFramework
 
                         m_ToolConfigProxy.RemoveToolConfigInfoFromCTRSTCIsById(int.Parse(m_ToolConfigInfo.id));
                         SetButtonState(BtnState.normal);
+
+                        if (UIKit.GetPanel<ToolLibraryForm>().rightToolsForToolRoom.Contains(m_ToolConfigInfo.toolName))
+                        {
+                            if (OperateSetting.Instance.ToolPackUILogic.GetHint())
+                            {
+                                ShowHighter(true);
+                            }
+                        }
                     }
                     else
                     {
                         ToolConfigInfo tmpToolConfigInfo = m_ToolConfigProxy.GetTooConfigInfoById(int.Parse(m_ToolConfigInfo.id));
                         m_ToolConfigProxy.AddToolConfigInfoToCTRSTCIs(tmpToolConfigInfo);
                         SetButtonState(BtnState.select);
+                        ShowHighter(false);
                     }
 
                     break;
@@ -154,28 +182,7 @@ namespace QFramework
                     break;
             }
 
-            //if (m_ToolConfigProxy.GetToolConfigInfoFromCTKSTCIsById(int.Parse(m_ToolConfigInfo.id)) != null)
-            //{
-            //    if (OperateSetting.Instance.ToolPackUILogic.GetHint())
-            //    {
-            //        if (GetIsNeedHighter())
-            //        {
-            //            ShowHighter(true);
-            //        }
-            //    }
-            //}
-            //else
-            //{
-
-            //    m_ToolConfigProxy.AddToolConfigInfoToCTKSTCIs(m_ToolConfigProxy.GetToolConfigInfoFromCTKSTCIsById(int.Parse(m_ToolConfigInfo.id)));
-
-            //    if (OperateSetting.Instance.ToolPackUILogic.GetHint())
-            //    {
-            //        ShowHighter(false);
-            //    }
-
-            //    SetButtonState(BtnState.select);
-            //}
+            
         }
 
         public void SetShowToolInfo()