2
0
Fork 0
master
cd 2 years ago
parent e7762711b7
commit 165bf1b548

@ -123,6 +123,37 @@ NavMeshSettings:
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &150928140
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 150928141}
m_Layer: 6
m_Name: target
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &150928141
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 150928140}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.475, y: 0.033333335, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 166658848}
m_Father: {fileID: 1645380337361164335}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &166658847
GameObject:
m_ObjectHideFlags: 0
@ -149,11 +180,11 @@ Transform:
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 166658847}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0.491, y: 0.40625, z: 0}
m_LocalPosition: {x: 0, y: 0.25, z: 0}
m_LocalScale: {x: 1, y: 1, z: 2}
m_Children: []
m_Father: {fileID: 1645380337361164335}
m_RootOrder: 1
m_Father: {fileID: 150928141}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!95 &166658849
Animator:
@ -985,6 +1016,37 @@ PrefabInstance:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: 44baafba702c39f4295e3978f37bbbb9, type: 3}
--- !u!1 &1251429152
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1251429153}
m_Layer: 6
m_Name: self
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1251429153
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1251429152}
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_Children:
- {fileID: 2922087621768366588}
m_Father: {fileID: 1645380337361164335}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!850595691 &1321723957
LightingSettings:
m_ObjectHideFlags: 0
@ -1597,15 +1659,15 @@ PlayableDirector:
- key: {fileID: -4750574827767443630, guid: 0128bf6357f2af44f8acf1142582b387, type: 2}
value: {fileID: 1645380337361164335}
- key: {fileID: -4824941642191393376, guid: 899348e4425bd484eb628373234b4f71, type: 2}
value: {fileID: 5972941309607553105}
value: {fileID: 4414991604218682516}
- key: {fileID: -4750574827767443630, guid: 899348e4425bd484eb628373234b4f71, type: 2}
value: {fileID: 1645380337361164335}
value: {fileID: 1251429152}
- key: {fileID: -4824941642191393376, guid: b4fdf3bb1c5f695409a5d8c0bbaf4096, type: 2}
value: {fileID: 5972941309607553105}
- key: {fileID: -4750574827767443630, guid: b4fdf3bb1c5f695409a5d8c0bbaf4096, type: 2}
value: {fileID: 1645380337361164335}
- key: {fileID: -4824941642191393376, guid: 2ad30960da23d6040a36cb98ecd360db, type: 2}
value: {fileID: 5972941309607553105}
value: {fileID: 4414991604218682516}
- key: {fileID: -4824941642191393376, guid: 95ece9de13dfc4e4ea17ace1210e55c4, type: 2}
value: {fileID: 5972941309607553105}
- key: {fileID: -4750574827767443630, guid: 95ece9de13dfc4e4ea17ace1210e55c4, type: 2}
@ -1705,9 +1767,9 @@ PlayableDirector:
- key: {fileID: -4750574827767443630, guid: b44bca40ccb636845a168b33854dc048, type: 2}
value: {fileID: 1645380337361164335}
- key: {fileID: -4824941642191393376, guid: b4413fc28b3645e4cafa684042d53655, type: 2}
value: {fileID: 5972941309607553105}
value: {fileID: 4414991604218682516}
- key: {fileID: -4750574827767443630, guid: b4413fc28b3645e4cafa684042d53655, type: 2}
value: {fileID: 1645380337361164335}
value: {fileID: 1251429152}
- key: {fileID: -4824941642191393376, guid: 027ab2f5cd4c9d244bad141e093bf72d, type: 2}
value: {fileID: 5972941309607553105}
- key: {fileID: -4750574827767443630, guid: 027ab2f5cd4c9d244bad141e093bf72d, type: 2}
@ -1719,27 +1781,29 @@ PlayableDirector:
- key: {fileID: 2359698281133013487, guid: 8ade9e6ed33a1ba4c895aac2250ea577, type: 2}
value: {fileID: 1645380337361164335}
- key: {fileID: -4824941642191393376, guid: 43c07429006d87d45bdccfa50b7641b9, type: 2}
value: {fileID: 5972941309607553105}
value: {fileID: 4414991604218682516}
- key: {fileID: -4750574827767443630, guid: 43c07429006d87d45bdccfa50b7641b9, type: 2}
value: {fileID: 1645380337361164335}
value: {fileID: 1251429152}
- key: {fileID: -4824941642191393376, guid: 64536f40264920c45a5087983be0ace7, type: 2}
value: {fileID: 5972941309607553105}
- key: {fileID: -4750574827767443630, guid: 64536f40264920c45a5087983be0ace7, type: 2}
value: {fileID: 1645380337361164335}
- key: {fileID: -4824941642191393376, guid: 0e3790cb939be9d41ae7980a540ea01a, type: 2}
value: {fileID: 5972941309607553105}
value: {fileID: 4414991604218682516}
- key: {fileID: -4750574827767443630, guid: 0e3790cb939be9d41ae7980a540ea01a, type: 2}
value: {fileID: 1645380337361164335}
value: {fileID: 1251429152}
- key: {fileID: 2359698281133013487, guid: 3288bbd90725c2944a49f99a81cc1fee, type: 2}
value: {fileID: 1645380337361164335}
- key: {fileID: -4824941642191393376, guid: c289f3228d547dc4285b0bd67a1ef3b0, type: 2}
value: {fileID: 5972941309607553105}
value: {fileID: 4414991604218682516}
- key: {fileID: -4750574827767443630, guid: c289f3228d547dc4285b0bd67a1ef3b0, type: 2}
value: {fileID: 1645380337361164335}
value: {fileID: 1251429152}
- key: {fileID: -4824941642191393376, guid: 0bd5f8223b563b5478bdf14ef83b5a48, type: 2}
value: {fileID: 5972941309607553105}
- key: {fileID: -4750574827767443630, guid: 0bd5f8223b563b5478bdf14ef83b5a48, type: 2}
value: {fileID: 1645380337361164335}
value: {fileID: 4414991604218682516}
- key: {fileID: -6860988920940094625, guid: 0bd5f8223b563b5478bdf14ef83b5a48, type: 2}
value: {fileID: 150928140}
- key: {fileID: -1577201873511395039, guid: 0bd5f8223b563b5478bdf14ef83b5a48, type: 2}
value: {fileID: 166658849}
m_ExposedReferences:
m_References: []
--- !u!212 &89448210413526911
@ -1824,6 +1888,10 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: d6f2f4791795420b89bb26f9116aec55, type: 3}
m_Name:
m_EditorClassIdentifier:
self: {fileID: 1251429152}
target: {fileID: 150928140}
self_animator: {fileID: 4414991604218682516}
target_animator: {fileID: 166658849}
--- !u!4 &1645380337361164335
Transform:
m_ObjectHideFlags: 0
@ -1835,8 +1903,8 @@ Transform:
m_LocalPosition: {x: 0, y: 0.75, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 2922087621768366588}
- {fileID: 166658848}
- {fileID: 1251429153}
- {fileID: 150928141}
m_Father: {fileID: 0}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
@ -1851,7 +1919,7 @@ Transform:
m_LocalPosition: {x: 0, y: 0.40625, z: 0}
m_LocalScale: {x: 1, y: 1, z: 2}
m_Children: []
m_Father: {fileID: 1645380337361164335}
m_Father: {fileID: 1251429153}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1001 &3695570339981591418

@ -8,12 +8,14 @@ using UnityEngine.Timeline;
public class TimelineTool : MonoBehaviour
{
private PlayableDirector PlayableDirector;
private GameObject animator;
public GameObject self;
public GameObject target;
public Animator self_animator;
public Animator target_animator;
private void OnEnable()
{
PlayableDirector = GetComponent<PlayableDirector>();
animator = GetComponentInChildren<Animator>().gameObject;
Selection.selectionChanged += OnSelectionChanged;
}
@ -33,14 +35,29 @@ public class TimelineTool : MonoBehaviour
PlayableDirector.playableAsset = timeline;
foreach (var track in timeline.GetOutputTracks())
{
if (track is AttackTrack)
{
PlayableDirector.SetGenericBinding(track, self);
}
if (track is AnimationTrack)
{
PlayableDirector.SetGenericBinding(track, animator);
PlayableDirector.SetGenericBinding(track, self_animator);
}
if (track is AttackTrack)
if (track is ThrowPositionTrack)
{
PlayableDirector.SetGenericBinding(track, target);
}
if (track is ThrowAnimationTrack)
{
PlayableDirector.SetGenericBinding(track, target_animator);
}
if (track is ThrowTurnTrack)
{
PlayableDirector.SetGenericBinding(track, transform);
PlayableDirector.SetGenericBinding(track, target);
}
}

@ -39,6 +39,43 @@ namespace Game
var rot = Quaternion.FromToRotation(Vector3.right, castDir);
var castPos = rot * castShape.Offset + Owner.Pos();
if (param.throwOnly)
{
//投技 无需检测
var targetId = Owner.skill.ThrowTarget;
var target = Util.GetEntity(targetId);
if (!(target is null))
{
var skillHitInfo = new SkillHitInfo
{
SkillParam = param,
AttackRate = 1,
StunkRate = 1,
OwnerEntity = Owner.ID(),
HitEntity = Owner.skill.ThrowTarget,
HitDir = GetHitDir(param.hitDirType, target, castPos, castDir),
SkillId = skill.SkillId.Value,
IsBreak = true,
Rank = 1,
HitIndex = 1,
HitCount = 1,
Continue = false,
};
if (!string.IsNullOrEmpty(skillHitInfo.SkillId))
{
var skillCfg = Util.GetSkillMasterConfigData(skillHitInfo.SkillId);
if (skillCfg != null)
{
var featureSkill = skillCfg.GetFeatureSkill();
skillHitInfo.AttackRate = featureSkill.AttackRate;
skillHitInfo.StunkRate = featureSkill.StunRate;
}
}
skill.HitInfo.Enqueue(skillHitInfo);
}
return;
}
Util.DrawShape(castShape, castPos, castDir, Color.red);
_tempHitInfoList.Clear();

@ -1,13 +1,26 @@
using UnityEngine;
using UnityEngine.Timeline;
namespace Game
{
public class ClipThrowAnimation : TimelineClipBase
{
private ThrowAnimationClip _mRealAsset;
private const string OverrideClip = "timeline";
private const string OverrideClipAnother = "timeline_another";
private AnimationComponent _animation;
private Animator _animator;
public override void OnEnter()
{
var target = Util.GetEntity(Owner.skill.ThrowTarget);
_mRealAsset = Asset as ThrowAnimationClip;
_animation = target.animation;
_animator = _animation.Animator;
_animation.IsTimelineAnother = !_animation.IsTimelineAnother;
var clipName = _animation.IsTimelineAnother ? OverrideClipAnother : OverrideClip;
_animation.AnimatorOverrideController[clipName] = _animation.AnimatorOverrideController[_mRealAsset.clip.name];
_animator.speed = (float)Speed;
}
public override void OnStay()
{

@ -17,20 +17,19 @@ namespace Game
}
TimelineManager.Instance.EndSkillTimeline(target);
target.timeline.IsRunning = true;
target.iD.Data.IsFreeControl = false;
Util.AddStaggerBuff(target.ID(), -1f);
}
public override void OnStay()
{
Util.Print("Throwing target: " + target.ID());
if (!target.hp.IsAlive)
BreakSkill();
}
public override void OnLeave()
{
target.timeline.IsRunning = false;
target.iD.Data.IsFreeControl = true;
Util.AddStaggerBuff(target.ID(), 2f);
}

@ -0,0 +1,37 @@
using UnityEngine;
using UnityEngine.Timeline;
namespace Game
{
public class ClipThrowPosition : TimelineClipBase
{
private ThrowPositionClip _mRealAsset;
private GameEntity target;
public override void OnEnter()
{
_mRealAsset = Asset as ThrowPositionClip;
target = Util.GetEntity(Owner.skill.ThrowTarget);
SetPos(_mRealAsset.template.startPos);
}
public override void OnStay()
{
var rate = (Owner.timeline.TimePast - StartTime) / (EndTime - StartTime);
var pos = Vector3.Lerp(_mRealAsset.template.startPos, _mRealAsset.template.endPos, (float)rate);
SetPos(pos);
}
public override void OnLeave()
{
SetPos(_mRealAsset.template.endPos);
}
private void SetPos(Vector3 pos)
{
var relatedPos = new Vector3(pos.x * (Owner.move.IsRight ? 1 : -1), pos.y, pos.z);
var targetPos = Owner.Pos() + relatedPos;
target.SetPos(targetPos);
}
}
}

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 2ae09e079d924005a90649f9ea9f282d
timeCreated: 1686669469

@ -0,0 +1,31 @@
using UnityEngine;
using UnityEngine.Timeline;
namespace Game
{
public class ClipThrowTurn : TimelineClipBase
{
private ThrowTurnClip _mRealAsset;
private GameEntity target;
public override void OnEnter()
{
_mRealAsset = Asset as ThrowTurnClip;
target = Util.GetEntity(Owner.skill.ThrowTarget);
}
public override void OnStay()
{
var isRight = _mRealAsset.template.isRight;
if (!Owner.move.IsRight)
{
isRight = !isRight;
}
Util.EntityTurn(target, isRight);
}
public override void OnLeave()
{
}
}
}

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 9525705e439d4869b320965fb656235d
timeCreated: 1686676004

@ -28,6 +28,8 @@ namespace Game
Register<LoopInAirClip, ClipLoopInAir>();
Register<ThrowControlClip, ClipThrowControl>();
Register<ThrowAnimationClip, ClipThrowAnimation>();
Register<ThrowPositionClip, ClipThrowPosition>();
Register<ThrowTurnClip, ClipThrowTurn>();
}
private void Register<T1, T2>() where T2 : TimelineClipBase, new()

@ -0,0 +1,81 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: hero01_fist_skill01
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- curve:
- time: 0
value: {fileID: -7245968976224876639, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
- time: 0.1
value: {fileID: 5266695807090248874, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
- time: 0.2
value: {fileID: 1447096631726802870, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
- time: 0.26000002
value: {fileID: 1447096631726802870, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
m_SampleRate: 25
m_WrapMode: 1
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
pptrCurveMapping:
- {fileID: -7245968976224876639, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
- {fileID: 5266695807090248874, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
- {fileID: 1447096631726802870, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
- {fileID: 1447096631726802870, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.3
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b4e9bcecd5a1bbf44ab8b791a8c3a57a
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@ -0,0 +1,411 @@
fileFormatVersion: 2
guid: ac45ce9869b6d9246aae2def918a988a
TextureImporter:
internalIDToNameTable:
- first:
213: -8941254328330296996
second: hero01_fist_skill0100
- first:
213: -7245968976224876639
second: hero01_fist_skill0101
- first:
213: 5266695807090248874
second: hero01_fist_skill0102
- first:
213: 1447096631726802870
second: hero01_fist_skill0103
- first:
213: 6061515478646043129
second: hero01_fist_skill0104
- first:
213: -3574983720356716551
second: hero01_fist_skill0105
- first:
213: -2484408847886342495
second: hero01_fist_skill0106
- first:
213: 8184123763148998355
second: hero01_fist_skill0107
- first:
213: -1516608074503794691
second: hero01_fist_skill0108
- first:
213: -3612747745573613625
second: hero01_fist_skill0109
- first:
213: -8103451876754181430
second: hero01_fist_skill0110
- first:
213: 240888033434912685
second: hero01_fist_skill0111
- first:
213: -8570510611612229213
second: hero01_fist_skill0112
- first:
213: 4161719859215244876
second: hero01_fist_skill0113
externalObjects: {}
serializedVersion: 11
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 0
aniso: -1
mipBias: -100
wrapU: 1
wrapV: 1
wrapW: 1
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 2
spriteExtrude: 1
spriteMeshType: 0
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 64
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites:
- serializedVersion: 2
name: hero01_fist_skill0100
rect:
serializedVersion: 2
x: 1
y: 391
width: 128
height: 128
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: c51e279af884ae380800000000000000
internalID: -8941254328330296996
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: hero01_fist_skill0101
rect:
serializedVersion: 2
x: 131
y: 391
width: 128
height: 128
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 1a78d9e5b95217b90800000000000000
internalID: -7245968976224876639
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: hero01_fist_skill0102
rect:
serializedVersion: 2
x: 261
y: 391
width: 128
height: 128
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: aac47a1beef071940800000000000000
internalID: 5266695807090248874
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: hero01_fist_skill0103
rect:
serializedVersion: 2
x: 391
y: 391
width: 128
height: 128
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 6b78db138be151410800000000000000
internalID: 1447096631726802870
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: hero01_fist_skill0104
rect:
serializedVersion: 2
x: 1
y: 261
width: 128
height: 128
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 9f1ba396634de1450800000000000000
internalID: 6061515478646043129
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: hero01_fist_skill0105
rect:
serializedVersion: 2
x: 131
y: 261
width: 128
height: 128
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 9ff55565f3b136ec0800000000000000
internalID: -3574983720356716551
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: hero01_fist_skill0106
rect:
serializedVersion: 2
x: 261
y: 261
width: 128
height: 128
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 1a6a5e8d05b958dd0800000000000000
internalID: -2484408847886342495
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: hero01_fist_skill0107
rect:
serializedVersion: 2
x: 391
y: 261
width: 128
height: 128
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 3d644548339d39170800000000000000
internalID: 8184123763148998355
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: hero01_fist_skill0108
rect:
serializedVersion: 2
x: 1
y: 131
width: 128
height: 128
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: dff46b7ddfce3fae0800000000000000
internalID: -1516608074503794691
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: hero01_fist_skill0109
rect:
serializedVersion: 2
x: 131
y: 131
width: 128
height: 128
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 7cfcdf90111fcddc0800000000000000
internalID: -3612747745573613625
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: hero01_fist_skill0110
rect:
serializedVersion: 2
x: 261
y: 131
width: 128
height: 128
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: ac23897b371ca8f80800000000000000
internalID: -8103451876754181430
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: hero01_fist_skill0111
rect:
serializedVersion: 2
x: 391
y: 131
width: 128
height: 128
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: da7c78fd36ec75300800000000000000
internalID: 240888033434912685
vertices: []
indices:
edges: []
weights: []
- serializedVersion: 2
name: hero01_fist_skill0112
rect:
serializedVersion: 2
x: 1
y: 1
width: 128
height: 128
alignment: 0
pivot: {x: 0.5, y: 0.5}
border: {x: 0, y: 0, z: 0, w: 0}
outline: []
physicsShape: []
tessellationDetail: -1
bones: []
spriteID: 3a1232bd10e6f0980800000000000000
internalID: -8570510611612229213
vertices: []
indices:
edges: []
weights: []
outline: []
physicsShape: []
bones: []
spriteID:
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,89 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: hero01_fist_skill0101
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- curve:
- time: 0
value: {fileID: -2484408847886342495, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
- time: 0.1
value: {fileID: 8184123763148998355, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
- time: 0.2
value: {fileID: -1516608074503794691, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
- time: 0.3
value: {fileID: -3612747745573613625, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
- time: 0.4
value: {fileID: -8103451876754181430, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
- time: 0.46
value: {fileID: -8103451876754181430, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
m_SampleRate: 25
m_WrapMode: 1
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
pptrCurveMapping:
- {fileID: -2484408847886342495, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
- {fileID: 8184123763148998355, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
- {fileID: -1516608074503794691, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
- {fileID: -3612747745573613625, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
- {fileID: -8103451876754181430, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
- {fileID: -8103451876754181430, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.5
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 95bd45cb3e25066439088bc9980c1e49
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,77 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: hero01_fist_skill0101_back
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- curve:
- time: 0
value: {fileID: 240888033434912685, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
- time: 0.1
value: {fileID: -8570510611612229213, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
- time: 0.16
value: {fileID: -8570510611612229213, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
m_SampleRate: 25
m_WrapMode: 1
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
pptrCurveMapping:
- {fileID: 240888033434912685, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
- {fileID: -8570510611612229213, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
- {fileID: -8570510611612229213, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.19999999
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 3285aa662ca81a84c87abe6d6e84994f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,77 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!74 &7400000
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: hero01_fist_skill01_back
serializedVersion: 6
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves: []
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves:
- curve:
- time: 0
value: {fileID: 6061515478646043129, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
- time: 0.1
value: {fileID: -3574983720356716551, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
- time: 0.16
value: {fileID: -3574983720356716551, guid: ac45ce9869b6d9246aae2def918a988a,
type: 3}
attribute: m_Sprite
path:
classID: 212
script: {fileID: 0}
m_SampleRate: 25
m_WrapMode: 1
m_Bounds:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 0, y: 0, z: 0}
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
pptrCurveMapping:
- {fileID: 6061515478646043129, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
- {fileID: -3574983720356716551, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
- {fileID: -3574983720356716551, guid: ac45ce9869b6d9246aae2def918a988a, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 0.19999999
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0
m_HasAdditiveReferencePose: 0
m_LoopTime: 0
m_LoopBlend: 0
m_LoopBlendOrientation: 0
m_LoopBlendPositionY: 0
m_LoopBlendPositionXZ: 0
m_KeepOriginalOrientation: 0
m_KeepOriginalPositionY: 1
m_KeepOriginalPositionXZ: 0
m_HeightFromFeet: 0
m_Mirror: 0
m_EditorCurves: []
m_EulerEditorCurves: []
m_HasGenericRootTransform: 0
m_HasMotionFloatCurves: 0
m_Events: []

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c300b119a0e097d4b95a71c5722cea4f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,72 @@
fileFormatVersion: 2
guid: 1d6d942d9ad14404a92efe873e401b3d
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: d1956ce1ff810451f9738b29e9df561a, type: 3}
settings:
importType: 0
transparencyMode: 0
transparentColor: {r: 1, g: 0, b: 1, a: 1}
pixelsPerUnit: 64
spriteAlignment: 0
spritePivot: {x: 0.5, y: 0.5}
generateAnimations: 1
createAnimationAssets: 0
bindType: 0
animType: 0
baseAnimator: {instanceID: 0}
buildAtlas: 0
tileSize: {x: 16, y: 16}
tileNameType: 0
tileEmpty: 0
textureImporterSettings:
seamlessCubemap: 0
mipmapBias: 0.5
wrapMode: 1
wrapModeU: 0
wrapModeV: 0
wrapModeW: 0
alphaIsTransparency: 1
spriteMode: 1
spritePixelsPerUnit: 100
spriteTessellationDetail: 0
spriteExtrude: 1
spriteMeshType: 0
spriteAlignment: 0
spritePivot: {x: 0, y: 0}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
aniso: 1
filterMode: 0
cubemapConvolution: 0
textureType: 8
textureShape: 1
mipmapFilter: 0
mipmapEnabled: 0
sRGBTexture: 1
fadeOut: 0
borderMipmap: 0
mipMapsPreserveCoverage: 0
mipmapFadeDistanceStart: 1
alphaTestReferenceValue: 1
convertToNormalMap: 0
heightmapScale: 0
normalMapFilter: 0
alphaSource: 1
singleChannelComponent: 0
readable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
npotScale: 0
generateCubemap: 0
mipmapFadeDistanceEnd: 3
animationSettings: []
texture: {instanceID: 0}
spriteImportData: []
spriteRects: []
selectedImporter: 0

@ -523,7 +523,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 030f85c3f73729f4f976f66ffb23b875, type: 3}
m_Name: AnimationPlayableAsset
m_EditorClassIdentifier:
m_Clip: {fileID: 7400000, guid: 938c6a826b6570547b0cf6d2fc52d35d, type: 2}
m_Clip: {fileID: 7400000, guid: b4e9bcecd5a1bbf44ab8b791a8c3a57a, type: 2}
m_Position: {x: 0, y: 0, z: 0}
m_EulerAngles: {x: 0, y: 0, z: 0}
m_UseTrackMatchFields: 1
@ -655,11 +655,11 @@ MonoBehaviour:
m_Tracks:
- {fileID: -4824941642191393376}
- {fileID: 6690682390998089378}
- {fileID: 8065103114700200184}
- {fileID: 5466744683385811380}
- {fileID: -5493165062151283881}
- {fileID: -4750574827767443630}
- {fileID: -1704311901145742241}
- {fileID: 8065103114700200184}
- {fileID: -4645220259691914875}
m_FixedDuration: 0.9
m_EditorSettings:
@ -734,7 +734,7 @@ MonoBehaviour:
flowTime: 0
isFlow: 0
isAoe: 1
damageRate: 1
damageRate: 0
stunRate: 1
staggerLevel: 2
pauseTime: 2
@ -750,6 +750,7 @@ MonoBehaviour:
Radius: 0
Angle: 0
throwTimeline: {fileID: 11400000, guid: 0bd5f8223b563b5478bdf14ef83b5a48, type: 2}
throwOnly: 0
--- !u!114 &5178577764301111608
MonoBehaviour:
m_ObjectHideFlags: 1
@ -884,7 +885,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 030f85c3f73729f4f976f66ffb23b875, type: 3}
m_Name: AnimationPlayableAsset
m_EditorClassIdentifier:
m_Clip: {fileID: 7400000, guid: 205bc344a5dde1b4ea18075c08728e52, type: 2}
m_Clip: {fileID: 7400000, guid: c300b119a0e097d4b95a71c5722cea4f, type: 2}
m_Position: {x: 0, y: 0, z: 0}
m_EulerAngles: {x: 0, y: 0, z: 0}
m_UseTrackMatchFields: 1

@ -27,6 +27,7 @@ public class AttackBehaviour : PlayableBehaviour
[Rename("半径(格)")] public float Radius;
[Rename("角度")] public float Angle;
[Rename("投技时间轴")] public PlayableAsset throwTimeline;
[Rename("仅对投技目标结算")] public bool throwOnly;
private Shape _shape = null;
private const float ToGridSize = 16f / 64f;

@ -4,9 +4,6 @@ using Game;
public class AttackMixerBehaviour : PlayableBehaviour
{
private const float ToGridSize = 16f / 64f;
// NOTE: This function is called at runtime and edit time. Keep that in mind when setting the values of properties.
public override void ProcessFrame(Playable playable, FrameData info, object playerData)
{
SwitchPanel(playable, info, playerData);
@ -19,11 +16,13 @@ public class AttackMixerBehaviour : PlayableBehaviour
private void DrawBox(Playable playable, FrameData info, object playerData)
{
var trackBinding = playerData as Transform;
var trackBinding = playerData as GameObject;
if (!trackBinding)
return;
var trans = trackBinding.transform;
var inputCount = playable.GetInputCount();
for (var i = 0; i < inputCount; i++)
@ -37,7 +36,7 @@ public class AttackMixerBehaviour : PlayableBehaviour
if (attackTimeClipTime > 0 && attackTimeClipTime + 0.01f < attackTimeClipTimeMax)
{
var shape = input.ShapeNew;
Util.DrawShape(input.ShapeNew, trackBinding.position + shape.Offset, Vector3.right, Color.green);
Util.DrawShape(input.ShapeNew, trans.position + shape.Offset, Vector3.right, Color.green);
}
}
}

@ -4,19 +4,6 @@ using UnityEngine.Playables;
using UnityEngine.Timeline;
[Serializable]
public class ThrowAnimationClip : PlayableAsset, ITimelineClipAsset
public class ThrowAnimationClip : AnimationPlayableAsset
{
public ThrowAnimationBehaviour template = new ThrowAnimationBehaviour ();
public ClipCaps clipCaps
{
get { return ClipCaps.None; }
}
public override Playable CreatePlayable (PlayableGraph graph, GameObject owner)
{
var playable = ScriptPlayable<ThrowAnimationBehaviour>.Create (graph, template);
ThrowAnimationBehaviour clone = playable.GetBehaviour ();
return playable;
}
}

@ -1,23 +0,0 @@
using System;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
public class ThrowAnimationMixerBehaviour : PlayableBehaviour
{
// NOTE: This function is called at runtime and edit time. Keep that in mind when setting the values of properties.
public override void ProcessFrame(Playable playable, FrameData info, object playerData)
{
int inputCount = playable.GetInputCount ();
for (int i = 0; i < inputCount; i++)
{
float inputWeight = playable.GetInputWeight(i);
ScriptPlayable<ThrowAnimationBehaviour> inputPlayable = (ScriptPlayable<ThrowAnimationBehaviour>)playable.GetInput(i);
ThrowAnimationBehaviour input = inputPlayable.GetBehaviour ();
// Use the above variables to process each frame of this playable.
}
}
}

@ -3,11 +3,6 @@ using UnityEngine.Playables;
using UnityEngine.Timeline;
[TrackColor(0.855f, 0.8623f, 0.87f)]
[TrackClipType(typeof(ThrowAnimationClip))]
public class ThrowAnimationTrack : TrackAsset
public class ThrowAnimationTrack : AnimationTrack
{
public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount)
{
return ScriptPlayable<ThrowAnimationMixerBehaviour>.Create (graph, inputCount);
}
}

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

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: bfde765c9ce3c9144ad2782897c0d9bd
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -0,0 +1,15 @@
using System;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
[Serializable]
public class ThrowPositionBehaviour : PlayableBehaviour
{
[Rename("起始位置")] public Vector3 startPos;
[Rename("结束位置")] public Vector3 endPos;
public override void OnPlayableCreate(Playable playable)
{
}
}

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2f9ec3a766a22c247867e6a7f598315b
guid: 0babe958d44390a4d91f2c7897933e7a
MonoImporter:
externalObjects: {}
serializedVersion: 2

@ -0,0 +1,22 @@
using System;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
[Serializable]
public class ThrowPositionClip : PlayableAsset, ITimelineClipAsset
{
public ThrowPositionBehaviour template = new ThrowPositionBehaviour ();
public ClipCaps clipCaps
{
get { return ClipCaps.None; }
}
public override Playable CreatePlayable (PlayableGraph graph, GameObject owner)
{
var playable = ScriptPlayable<ThrowPositionBehaviour>.Create (graph, template);
ThrowPositionBehaviour clone = playable.GetBehaviour ();
return playable;
}
}

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: cc8a5c942acc480409ef8e8849552190
guid: 3f7f51806e668724a95656d2dc490534
MonoImporter:
externalObjects: {}
serializedVersion: 2

@ -0,0 +1,35 @@
using System;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
public class ThrowPositionMixerBehaviour : PlayableBehaviour
{
public override void ProcessFrame(Playable playable, FrameData info, object playerData)
{
var trackBinding = playerData as GameObject;
if (!trackBinding)
return;
var trans = trackBinding.transform;
var inputCount = playable.GetInputCount();
for (var i = 0; i < inputCount; i++)
{
var inputPlayable = (ScriptPlayable<ThrowPositionBehaviour>)playable.GetInput(i);
var input = inputPlayable.GetBehaviour();
var positionTimeClipTime = inputPlayable.GetTime();
var positionTimeClipTimeMax = inputPlayable.GetDuration();
if (positionTimeClipTime > 0 && positionTimeClipTime + 0.01f < positionTimeClipTimeMax)
{
var rate = positionTimeClipTime / positionTimeClipTimeMax;
var pos = Vector3.Lerp(input.startPos, input.endPos, (float)rate);
trans.localPosition = pos;
}
}
}
}

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

@ -0,0 +1,14 @@
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
[TrackColor(0.855f, 0.8623f, 0.87f)]
[TrackClipType(typeof(ThrowPositionClip))]
[TrackBindingType(typeof(Transform))]
public class ThrowPositionTrack : TrackAsset
{
public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount)
{
return ScriptPlayable<ThrowPositionMixerBehaviour>.Create (graph, inputCount);
}
}

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

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b6c9d6797ce0bb34d937c5c5ddf67b46
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

@ -4,8 +4,9 @@ using UnityEngine.Playables;
using UnityEngine.Timeline;
[Serializable]
public class ThrowAnimationBehaviour : PlayableBehaviour
public class ThrowTurnBehaviour : PlayableBehaviour
{
[Rename("是否正方向")] public bool isRight;
public override void OnPlayableCreate (Playable playable)
{

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

@ -0,0 +1,22 @@
using System;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
[Serializable]
public class ThrowTurnClip : PlayableAsset, ITimelineClipAsset
{
public ThrowTurnBehaviour template = new ThrowTurnBehaviour ();
public ClipCaps clipCaps
{
get { return ClipCaps.None; }
}
public override Playable CreatePlayable (PlayableGraph graph, GameObject owner)
{
var playable = ScriptPlayable<ThrowTurnBehaviour>.Create (graph, template);
ThrowTurnBehaviour clone = playable.GetBehaviour ();
return playable;
}
}

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

@ -0,0 +1,33 @@
using System;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
public class ThrowTurnMixerBehaviour : PlayableBehaviour
{
public override void ProcessFrame(Playable playable, FrameData info, object playerData)
{
var trackBinding = playerData as GameObject;
if (!trackBinding)
return;
var trans = trackBinding.transform;
var inputCount = playable.GetInputCount();
for (var i = 0; i < inputCount; i++)
{
var inputPlayable = (ScriptPlayable<ThrowTurnBehaviour>)playable.GetInput(i);
var input = inputPlayable.GetBehaviour();
var positionTimeClipTime = inputPlayable.GetTime();
var positionTimeClipTimeMax = inputPlayable.GetDuration();
if (positionTimeClipTime > 0 && positionTimeClipTime + 0.01f < positionTimeClipTimeMax)
{
trans.localScale = new Vector3(input.isRight ? 1 : -1, 1, 1);
}
}
}
}

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

@ -0,0 +1,14 @@
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.Timeline;
[TrackColor(0.855f, 0.8623f, 0.87f)]
[TrackClipType(typeof(ThrowTurnClip))]
[TrackBindingType(typeof(Transform))]
public class ThrowTurnTrack : TrackAsset
{
public override Playable CreateTrackMixer(PlayableGraph graph, GameObject go, int inputCount)
{
return ScriptPlayable<ThrowTurnMixerBehaviour>.Create (graph, inputCount);
}
}

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 33a3dd7c69ee9d74c950f7f45ecf1d35
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
Loading…
Cancel
Save