Exemplo n.º 1
0
    public void Destroy()
    {
        Players.Destroy();
        Players = null;

        Animators.Destroy();
        Animators = null;
    }
Exemplo n.º 2
0
    public CraMain()
    {
        Players   = CraPlaybackManager.Get();
        Animators = CraAnimatorManager.Get();

#if UNITY_EDITOR
        EditorApplication.quitting += Destroy;
#endif
    }
Exemplo n.º 3
0
    public static CraPlaybackManager Get()
    {
        if (Instance != null)
        {
            return(Instance);
        }

        Instance = new CraPlaybackManager();
        return(Instance);
    }
Exemplo n.º 4
0
    CraPlaybackManager()
    {
        Instance = this;

        PlayerData          = new CraDataContainer <CraPlayerData>(CraSettings.MAX_PLAYER_DATA);
        ClipData            = new CraDataContainer <CraClipData>(CraSettings.MAX_CLIP_DATA);
        BakedClipTransforms = new CraDataContainer <CraTransform>(CraSettings.MAX_BAKED_CLIP_TRANSFORMS);
        BoneData            = new CraDataContainer <CraBoneData>(CraSettings.MAX_BONE_DATA);
        Bones = new TransformAccessArray(CraSettings.MAX_BONES);

#if UNITY_EDITOR
        Statistics.PlayerData.MaxElements = CraSettings.MAX_PLAYER_DATA;
        Statistics.PlayerData.MaxBytes    = CraPlayerData.SIZE * CraSettings.MAX_PLAYER_DATA;

        Statistics.ClipData.MaxElements = CraSettings.MAX_CLIP_DATA;
        Statistics.ClipData.MaxBytes    = CraClipData.SIZE * CraSettings.MAX_CLIP_DATA;

        Statistics.BakedClipTransforms.MaxElements = CraSettings.MAX_BAKED_CLIP_TRANSFORMS;
        Statistics.BakedClipTransforms.MaxBytes    = CraTransform.SIZE * CraSettings.MAX_BAKED_CLIP_TRANSFORMS;

        Statistics.BoneData.MaxElements = CraSettings.MAX_BONE_DATA;
        Statistics.BoneData.MaxBytes    = CraBoneData.SIZE * CraSettings.MAX_BONE_DATA;

        Statistics.Bones.MaxElements = CraSettings.MAX_BONES;
        Statistics.Bones.MaxBytes    = (sizeof(bool) + sizeof(int) * 2) * CraSettings.MAX_BONES;
#endif

        PlayerJob = new CraPlayJob()
        {
            PlayerData = PlayerData.GetMemoryBuffer(),
            ClipData   = ClipData.GetMemoryBuffer()
        };

        BoneJob = new CraBoneEvalJob()
        {
            PlayerData          = PlayerData.GetMemoryBuffer(),
            BoneData            = BoneData.GetMemoryBuffer(),
            ClipData            = ClipData.GetMemoryBuffer(),
            BakedClipTransforms = BakedClipTransforms.GetMemoryBuffer()
        };
    }