internal void EnsureBasedInitialized()
        {
            if (_based != null)
            {
                return;
            }

            _based = NewActualTexture2D();
            _metadata.EnsureMetadataAssetInitialized();
            foreach (var onWhat in _metadata.MetadataAsset.AllOnWhat())
            {
                _basedOnSomething[onWhat] = NewActualTexture2D();
            }
        }
        public void AssignBased(string based, List <string> subjects)
        {
            _metadata.EnsureMetadataAssetInitialized();
            EditorUtility.SetDirty(_metadata.MetadataAsset);

            foreach (var basedBlendshape in subjects
                     .Distinct()
                     .Select(subject => new EeAnimationEditorMetadataBasedBlendshape {
                onWhat = based, based = subject
            }))
            {
                _metadata.MetadataAsset.PutBasedBlendshape(basedBlendshape);
            }

            _state.Altered(_previewHandler).SubjectsAreBased(subjects);
        }
        public string GetBasedOnWhat(string subject)
        {
            _metadata.EnsureMetadataAssetInitialized();

            var onWhat = _metadata.MetadataAsset.GetBasedOnWhat(subject);

            return(onWhat);
        }