Netcode Bootstrap

This commit is contained in:
Luis Gonzalez
2026-05-31 14:27:52 -07:00
parent 99d8d2d2a9
commit 7fa77ce821
1813 changed files with 2921554 additions and 84 deletions
@@ -0,0 +1,13 @@
using UnityEngine;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
namespace Rukhanka.Hybrid
{
[RequireComponent(typeof(RigDefinitionAuthoring))]
public class AnimationAssetSetAuthoring: MonoBehaviour
{
public AnimationClip[] animationClips;
public AvatarMask[] avatarMasks;
}
}
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 37148bf45591b3941a167e98d316845b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 298480
packageName: Rukhanka Animation System 2
packageVersion: 2.9.0
assetPath: Packages/com.rukhanka.animation/Rukhanka.Hybrid/ScriptedAnimator/AnimationAssetSetAuthoring.cs
uploadId: 897522
@@ -0,0 +1,57 @@
#if UNITY_EDITOR
using Unity.Collections;
using Unity.Entities;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
namespace Rukhanka.Hybrid
{
public class AnimationAssetSetBaker: Baker<AnimationAssetSetAuthoring>
{
public override void Bake(AnimationAssetSetAuthoring a)
{
var rigDef = GetComponent<RigDefinitionAuthoring>();
var avatar = rigDef.GetAvatar();
var animationBaker = new AnimationClipBaker();
var bakedAnimations = animationBaker.BakeAnimations(this, a.animationClips, avatar, a.gameObject);
var e = CreateAdditionalEntity(TransformUsageFlags.None, false, a.name + "_AnimationAssets");
var newAnimArr = AddBuffer<NewBlobAssetDatabaseRecord<AnimationClipBlob>>(e);
// Add animations
foreach (var ba in bakedAnimations)
{
var newAnim = new NewBlobAssetDatabaseRecord<AnimationClipBlob>()
{
hash = ba.Value.hash,
value = ba
};
newAnimArr.Add(newAnim);
}
// Add avatar masks
var bakedAvatarMasks = new NativeList<AvatarMaskBakingData>(Allocator.Temp);
foreach (var am in a.avatarMasks)
{
var amb = new AvatarMaskBaker();
var avatarMaskBlobAsset = amb.CreateAvatarMaskBlob(this, am, rigDef);
var newAvatarMaskBlob = new AvatarMaskBakingData()
{
rigEntity = GetEntity(a, TransformUsageFlags.None),
dataBlob = avatarMaskBlobAsset
};
bakedAvatarMasks.Add(newAvatarMaskBlob);
}
if (bakedAvatarMasks.Length > 0)
{
var buf = AddBuffer<AvatarMaskBakingData>(e);
buf.AddRange(bakedAvatarMasks.AsArray());
}
}
}
}
#endif
@@ -0,0 +1,18 @@
fileFormatVersion: 2
guid: 2c025df80dce0814b82c3ef04b1a7231
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 298480
packageName: Rukhanka Animation System 2
packageVersion: 2.9.0
assetPath: Packages/com.rukhanka.animation/Rukhanka.Hybrid/ScriptedAnimator/AnimationAssetSetBaker.cs
uploadId: 897522