コード例 #1
0
ファイル: TestUtils.cs プロジェクト: kurotu/VRCQuestTools
        /// <summary>
        /// Load MaterialBase from materials folder.
        /// </summary>
        /// <param name="file">File name.</param>
        /// <returns>MaterialBase.</returns>
        internal static MaterialBase LoadMaterialWrapper(string file)
        {
            var material = LoadMaterial(file);
            var wrapper  = new MaterialWrapperBuilder().Build(material);

            Assert.NotNull(wrapper);
            return(wrapper);
        }
コード例 #2
0
        /// <summary>
        /// Converts materials for ToonLit.
        /// </summary>
        /// <param name="materials">Materials to convert.</param>
        /// <param name="assetsDirectory">Root directory for converted avatar.</param>
        /// <returns>Converted materials (key: original material).</returns>
        internal Dictionary <Material, Material> ConvertMaterialsForToonLit(Material[] materials, string assetsDirectory)
        {
            var saveDirectory = $"{assetsDirectory}/Materials";

            Directory.CreateDirectory(saveDirectory);
            AssetDatabase.Refresh();

            var materialsToConvert = materials.Where(m => !VRCSDKUtility.IsMaterialAllowedForQuestAvatar(m)).ToArray();
            var convertedMaterials = new Dictionary <Material, Material>();

            for (int i = 0; i < materialsToConvert.Length; i++)
            {
                var m = materialsToConvert[i];
                AssetDatabase.TryGetGUIDAndLocalFileIdentifier(m, out string guid, out long localId);
                var material = new MaterialWrapperBuilder().Build(m);
                var toonlit  = material.ConvertToToonLit();
                AssetDatabase.CreateAsset(toonlit, $"{saveDirectory}/{m.name}_from_{guid}.mat");
                convertedMaterials.Add(m, toonlit);
            }
            return(convertedMaterials);
        }
コード例 #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="AvatarConverter"/> class.
 /// </summary>
 /// <param name="materialWrapperBuilder">MaterialWrapperBuilder to use.</param>
 internal AvatarConverter(MaterialWrapperBuilder materialWrapperBuilder)
 {
     MaterialWrapperBuilder = materialWrapperBuilder;
 }