关键伤害帧

This commit is contained in:
chenxi 2023-04-18 16:04:58 +08:00
parent 7e76d21958
commit 49b0499a43
5 changed files with 58 additions and 3 deletions

View File

@ -265,7 +265,17 @@ namespace BFEditor
{
bool isPlay = list.Items[i].Name == m_CurAnimationName;
GUILayout.BeginHorizontal();
if (GUILayout.Button(string.Format("动作:{0}==============时长:{1}s", list.Items[i].Name, list.Items[i].Duration), isPlay ? highlightStyle : normalStyle))
float keyFrame = 0.0f;
foreach(var t in list.Items[i].Timelines) {
var et = t as Spine.EventTimeline;
if(et != null) {
foreach (var spineEvent in et.Events) {
keyFrame = spineEvent.Time;
break;
}
}
}
if (GUILayout.Button(string.Format("动作:{0}============时长:{1}s============关键帧:{2}s", list.Items[i].Name, list.Items[i].Duration, keyFrame), isPlay ? highlightStyle : normalStyle))
{
}
GUILayout.EndHorizontal();

View File

@ -235,6 +235,21 @@ namespace BF
return skeletonGraphic.skeletonDataAsset.GetAnimationStateData().SkeletonData.FindAnimation(name).Duration;
}
public float GetAnimationKeyFrameTime(string name)
{
float time = 0.0f;
var animation = skeletonGraphic.skeletonDataAsset.GetAnimationStateData().SkeletonData.FindAnimation(name);
foreach (var timeline in animation.Timelines)
{
var eventTimeline = timeline as Spine.EventTimeline;
if (eventTimeline != null && eventTimeline.Events.Length > 0)
{
time = eventTimeline.Events[0].Time;
}
}
return time;
}
public void SetDefaultMix(float mixDuration)
{
skeletonGraphic.skeletonDataAsset.GetAnimationStateData().DefaultMix = mixDuration;

View File

@ -21,7 +21,7 @@ namespace XLua.CSObjectWrap
{
ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
System.Type type = typeof(BF.CharacterSpineHelper);
Utils.BeginObjectRegister(type, L, translator, 0, 23, 5, 2);
Utils.BeginObjectRegister(type, L, translator, 0, 24, 5, 2);
Utils.RegisterFunc(L, Utils.METHOD_IDX, "Reload", _m_Reload);
Utils.RegisterFunc(L, Utils.METHOD_IDX, "PlayAnimation", _m_PlayAnimation);
@ -44,6 +44,7 @@ namespace XLua.CSObjectWrap
Utils.RegisterFunc(L, Utils.METHOD_IDX, "SetLocalScaleX", _m_SetLocalScaleX);
Utils.RegisterFunc(L, Utils.METHOD_IDX, "SetMainSpineLocalPosition", _m_SetMainSpineLocalPosition);
Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetAnimationDuration", _m_GetAnimationDuration);
Utils.RegisterFunc(L, Utils.METHOD_IDX, "GetAnimationKeyFrameTime", _m_GetAnimationKeyFrameTime);
Utils.RegisterFunc(L, Utils.METHOD_IDX, "SetDefaultMix", _m_SetDefaultMix);
Utils.RegisterFunc(L, Utils.METHOD_IDX, "PlayAnimationAndPause", _m_PlayAnimationAndPause);
@ -703,6 +704,35 @@ namespace XLua.CSObjectWrap
return 1;
}
} catch(System.Exception gen_e) {
return LuaAPI.luaL_error(L, "c# exception:" + gen_e);
}
}
[MonoPInvokeCallbackAttribute(typeof(LuaCSFunction))]
static int _m_GetAnimationKeyFrameTime(RealStatePtr L)
{
try {
ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);
BF.CharacterSpineHelper gen_to_be_invoked = (BF.CharacterSpineHelper)translator.FastGetCSObj(L, 1);
{
string _name = LuaAPI.lua_tostring(L, 2);
var gen_ret = gen_to_be_invoked.GetAnimationKeyFrameTime( _name );
LuaAPI.lua_pushnumber(L, gen_ret);
return 1;
}

View File

@ -156,7 +156,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
skeletonDataAsset: {fileID: 11400000, guid: 1c7297de721c6b84b8cb96644f5fd288, type: 2}
skeletonDataAsset: {fileID: 11400000, guid: 172156a70a38fef4585d133365f0170c, type: 2}
additiveMaterial: {fileID: 0}
multiplyMaterial: {fileID: 0}
screenMaterial: {fileID: 0}