该项目的目的是同时测试和演示来自 Unity DOTS 技术堆栈的多个新包。
您最多选择25个主题 主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

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