/** * Copyright(c) Live2D Inc. All rights reserved. * * Use of this source code is governed by the Live2D Open Software license * that can be found at https://www.live2d.com/eula/live2d-open-software-license-agreement_en.html. */ using Live2D.Cubism.Core; using Live2D.Cubism.Rendering; using UnityEngine; namespace Live2D.Cubism.Framework.Json { /// /// Default pickers. /// public static class CubismBuiltinPickers { /// /// Builtin picker. /// /// Event source. /// Drawable to map to. /// Mapped texture. public static Material MaterialPicker(CubismModel3Json sender, CubismDrawable drawable) { if (drawable.IsDoubleSided) { if (drawable.BlendAdditive) { return (drawable.IsMasked) ? (drawable.IsInverted) ? CubismBuiltinMaterials.UnlitAdditiveMaskedInverted : CubismBuiltinMaterials.UnlitAdditiveMasked : CubismBuiltinMaterials.UnlitAdditive; } if (drawable.MultiplyBlend) { return (drawable.IsMasked) ? (drawable.IsInverted) ? CubismBuiltinMaterials.UnlitMultiplyMaskedInverted : CubismBuiltinMaterials.UnlitMultiplyMasked : CubismBuiltinMaterials.UnlitMultiply; } return (drawable.IsMasked) ? (drawable.IsInverted) ? CubismBuiltinMaterials.UnlitMaskedInverted : CubismBuiltinMaterials.UnlitMasked : CubismBuiltinMaterials.Unlit; } if (drawable.BlendAdditive) { return (drawable.IsMasked) ? (drawable.IsInverted) ? CubismBuiltinMaterials.UnlitAdditiveMaskedInvertedCulling : CubismBuiltinMaterials.UnlitAdditiveMaskedCulling : CubismBuiltinMaterials.UnlitAdditiveCulling; } if (drawable.MultiplyBlend) { return (drawable.IsMasked) ? (drawable.IsInverted) ? CubismBuiltinMaterials.UnlitMultiplyMaskedInvertedCulling : CubismBuiltinMaterials.UnlitMultiplyMaskedCulling : CubismBuiltinMaterials.UnlitMultiplyCulling; } return (drawable.IsMasked) ? (drawable.IsInverted) ? CubismBuiltinMaterials.UnlitMaskedInvertedCulling : CubismBuiltinMaterials.UnlitMaskedCulling : CubismBuiltinMaterials.UnlitCulling; } /// /// Builtin picker. /// /// Event source. /// Drawable to map to. /// Mapped texture. public static Texture2D TexturePicker(CubismModel3Json sender, CubismDrawable drawable) { return sender.Textures[drawable.TextureIndex]; } } }