您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
50 行
1.9 KiB
50 行
1.9 KiB
#if UNITY_EDITOR
|
|
|
|
using System;
|
|
using Unity.Animation;
|
|
using Unity.Entities;
|
|
using UnityEngine;
|
|
|
|
|
|
public class AnimSourceKnockBackAuthoring : AnimSourceAuthoring, IConvertGameObjectToEntity
|
|
{
|
|
public AnimationClip animShootPose;
|
|
public AnimationClip animReferenceShootPose;
|
|
[Range(0, 2)] public float shootPoseMagnitude;
|
|
[Range(0f, 10f)] public float shootPoseEnterSpeed;
|
|
[Range(0f, 10f)] public float shootPoseExitSpeed;
|
|
[Range(0f, 1f)] public float positionMultiplier;
|
|
[Range(0f, 1f)] public float angleMultiplier;
|
|
public AnimationCurve shootPoseEnter;
|
|
public AnimationCurve shootPoseExit;
|
|
public Unity.Animation.Hybrid.RigComponent RigReference;
|
|
public AnimSourceKnockBack.BoneReferences boneReferences;
|
|
|
|
public void Convert(Entity entity, EntityManager dstManager, GameObjectConversionSystem conversionSystem)
|
|
{
|
|
dstManager.AddComponentData(entity, new AnimSource.Data());
|
|
|
|
var settings = new AnimSourceKnockBack.Settings
|
|
{
|
|
animShootPose = ClipBuilder.AnimationClipToDenseClip(animShootPose),
|
|
animReferenceShootPose = ClipBuilder.AnimationClipToDenseClip(animReferenceShootPose),
|
|
shootPoseMagnitude = shootPoseMagnitude,
|
|
shootPoseEnterSpeed = shootPoseEnterSpeed,
|
|
shootPoseExitSpeed = shootPoseExitSpeed,
|
|
positionMultiplier = positionMultiplier,
|
|
angleMultiplier = angleMultiplier,
|
|
shootPoseEnter = shootPoseEnter.ToKeyframeCurveBlob(),
|
|
shootPoseExit = shootPoseExit.ToKeyframeCurveBlob(),
|
|
rigReference = RigDefinitionAsset.ConvertRig(RigReference),
|
|
boneReferences = new AnimSourceKnockBack.BoneReferences
|
|
{
|
|
hipBoneIndex = boneReferences.hipBoneIndex
|
|
},
|
|
};
|
|
|
|
dstManager.AddComponentData(entity, settings);
|
|
dstManager.AddComponentData(entity, AnimSource.AllowWrite.Default);
|
|
}
|
|
}
|
|
|
|
#endif
|