Merge remote-tracking branch 'origin/master' into LouDi_Pig

This commit is contained in:
李浩 2025-01-09 16:15:42 +08:00
commit 16b64d586d
5 changed files with 17 additions and 21 deletions

View File

@ -157,8 +157,8 @@ public class ActionHelper
} }
case "CameraLock": case "CameraLock":
{ {
var strAction = (XMLTool.StringListAction)act; var strAction = (XMLTool.DictionaryAction)act;
return CameraLockAction.Allocate(strAction.args[0], strAction.args[1]); return CameraLockAction.Allocate(strAction.args);
} }
case "Video": case "Video":
{ {

View File

@ -83,6 +83,10 @@ namespace QFramework
} }
anim[animName].speed = curSpeed; anim[animName].speed = curSpeed;
anim.Play(animName); anim.Play(animName);
if (anim[animName].wrapMode== WrapMode.Loop)
{
this.Finish();
}
} }
} }
catch (Exception) catch (Exception)

View File

@ -1,4 +1,5 @@
using System; using System;
using System.Collections.Generic;
using UnityEngine; using UnityEngine;
namespace QFramework namespace QFramework
@ -18,14 +19,14 @@ namespace QFramework
new SimpleObjectPool<CameraLockAction>(() => new CameraLockAction(), null, 10); new SimpleObjectPool<CameraLockAction>(() => new CameraLockAction(), null, 10);
string isMove; string isMove;
string isRotate; string isRotate;
public static CameraLockAction Allocate(string isMove, string isRotate, System.Action OnFinished = null) public static CameraLockAction Allocate(Dictionary<string, string> datas, System.Action OnFinished = null)
{ {
var retNode = mPool.Allocate(); var retNode = mPool.Allocate();
retNode.ActionID = ActionKit.ID_GENERATOR++; retNode.ActionID = ActionKit.ID_GENERATOR++;
retNode.Deinited = false; retNode.Deinited = false;
retNode.Reset(); retNode.Reset();
retNode.isMove = isMove; retNode.isMove = datas.ContainsKey("isMove") ? datas["isMove"] : "true";
retNode.isRotate = isRotate; retNode.isRotate = datas.ContainsKey("isRotate") ? datas["isRotate"] : "true";
retNode.OnFinished = OnFinished; retNode.OnFinished = OnFinished;
return retNode; return retNode;
} }

View File

@ -676,24 +676,16 @@ namespace XMLTool
break; break;
case "CameraLock": case "CameraLock":
{ {
var act = new StringListAction(); var act = new DictionaryAction();
XAttribute isMove = action.Attribute("isMove"); XAttribute isMove = action.Attribute("isMove");
if (isMove != null) if (isMove != null)
{ {
act.args.Add(isMove.Value); act.args.Add("isMove", isMove.Value);
}
else
{
act.args.Add("true");
} }
XAttribute isRotate = action.Attribute("isRotate"); XAttribute isRotate = action.Attribute("isRotate");
if (isRotate != null) if (isRotate != null)
{ {
act.args.Add(isRotate.Value); act.args.Add("isRotate", isRotate.Value);
}
else
{
act.args.Add("true");
} }
newAction = act; newAction = act;
} }

View File

@ -51,13 +51,12 @@
<Action type="SetScore" name="步骤名字" value="1"></Action> <Action type="SetScore" name="步骤名字" value="1"></Action>
<!--镜头切换 近距离和默认 如果有了nearDevice就可以不用nearPos和nearRot了 按照device的坐标和旋转来处理镜头 normalDevice同理 <!--镜头切换 近距离和默认 如果有了nearDevice就可以不用nearPos和nearRot了 按照device的坐标和旋转来处理镜头 normalDevice同理
只设置坐标 不执行镜头切换 是否执行要根据UI的按钮操作来 只设置坐标 不执行镜头切换 是否执行要根据UI的按钮操作来
isOn: near或者normal 作为强制选择一个镜头
--> -->
<Action type="CameraSwitch" nearDevice="肠钳" normalDevice="组织钳" nearPos="-3.942,3.24,-4.319" nearRot="16.42331,180,0" nearTime="1" normalPos="-3.942,3.24,-3.946" normalRot="16.42331,180,-5.305351E-14" normalTime="1" isOn="near"></Action> <Action type="CameraSwitch" nearDevice="肠钳" normalDevice="组织钳" nearPos="-3.942,3.24,-4.319" nearRot="16.42331,180,0" nearTime="1" normalPos="-3.942,3.24,-3.946" normalRot="16.42331,180,-5.305351E-14" normalTime="1"></Action>
<!--文字弹窗 按钮可以多个 点击事件使用UIClick--> <!--文字弹窗 按钮可以多个 点击事件使用UIClick-->
<Action type="TextTip" value="这里是文字描述" audio="q001.mp3" btns="确定,取消"/> <Action type="TextTip" value="这里是文字描述" audio="q001.mp3" btns="确定,取消"/>
<!--锁定镜头 value为是否锁定--> <!--锁定镜头 true为开启 false为锁定 isMove是移动镜头 isRotate是旋转镜头-->
<Action type="CameraLock" value="true"></Action> <Action type="CameraLock" isMove="true" isRotate="true"></Action>
<!--播放视频 size为视频窗口大小 offset为窗口中心点偏移 播放完成事件和关闭事件 通常使用关闭事件即可 <!--播放视频 size为视频窗口大小 offset为窗口中心点偏移 播放完成事件和关闭事件 通常使用关闭事件即可
宽度不要小于500 否则进度条看不太清楚--> 宽度不要小于500 否则进度条看不太清楚-->
<Action type="Video" value="test.mp4" size="500,500" offset="10,10" finishedEvent="finished" closeEvent="close"></Action> <Action type="Video" value="test.mp4" size="500,500" offset="10,10" finishedEvent="finished" closeEvent="close"></Action>
@ -128,7 +127,7 @@
<!--通用事件通知 <!--通用事件通知
HighLightTriggervalue=false 关闭device悬浮高亮 value=true 开启 false value=false,deviceName 后面的参数是可以写设备名字 不写就是全部设备 HighLightTriggervalue=false 关闭device悬浮高亮 value=true 开启
--> -->
<Action type="StrEvent" name="HighLightTrigger" value="false"></Action> <Action type="StrEvent" name="HighLightTrigger" value="false"></Action>