您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
120 行
3.5 KiB
120 行
3.5 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using UniGLTF;
|
|
using UnityEngine;
|
|
|
|
|
|
namespace UniVRM10
|
|
{
|
|
[Serializable]
|
|
public class VRM10ObjectMeta
|
|
{
|
|
#region Info
|
|
[SerializeField]
|
|
public string Name;
|
|
|
|
[SerializeField]
|
|
public string Version;
|
|
|
|
[SerializeField]
|
|
public List<string> Authors = new List<string>();
|
|
|
|
[SerializeField]
|
|
public string CopyrightInformation;
|
|
|
|
[SerializeField]
|
|
public string ContactInformation;
|
|
|
|
[SerializeField]
|
|
public List<string> References = new List<string>();
|
|
|
|
[SerializeField]
|
|
public string ThirdPartyLicenses;
|
|
|
|
[SerializeField]
|
|
public Texture2D Thumbnail;
|
|
#endregion
|
|
|
|
#region AvatarPermission
|
|
[SerializeField, Tooltip("A person who can perform with this avatar")]
|
|
public UniGLTF.Extensions.VRMC_vrm.AvatarPermissionType AvatarPermission;
|
|
|
|
[SerializeField, Tooltip("Violent acts using this avatar")]
|
|
public bool ViolentUsage;
|
|
|
|
[SerializeField, Tooltip("Sexuality acts using this avatar")]
|
|
public bool SexualUsage;
|
|
|
|
[SerializeField, Tooltip("For commercial use")]
|
|
public UniGLTF.Extensions.VRMC_vrm.CommercialUsageType CommercialUsage;
|
|
|
|
[SerializeField]
|
|
public bool PoliticalOrReligiousUsage;
|
|
|
|
[SerializeField]
|
|
public bool AntisocialOrHateUsage;
|
|
#endregion
|
|
|
|
#region Distribution License
|
|
[SerializeField]
|
|
public UniGLTF.Extensions.VRMC_vrm.CreditNotationType CreditNotation;
|
|
|
|
[SerializeField]
|
|
public bool Redistribution;
|
|
|
|
[SerializeField]
|
|
public UniGLTF.Extensions.VRMC_vrm.ModificationType Modification;
|
|
|
|
[SerializeField]
|
|
public string OtherLicenseUrl;
|
|
#endregion
|
|
|
|
public IEnumerable<Validation> Validate(GameObject _ = null)
|
|
{
|
|
if (string.IsNullOrEmpty(Name))
|
|
{
|
|
yield return Validation.Error("Require Name. ");
|
|
}
|
|
|
|
if (Authors == null || Authors.Count == 0)
|
|
{
|
|
yield return Validation.Error("Require at leaset one Author.");
|
|
}
|
|
|
|
if (Authors.All(x => string.IsNullOrWhiteSpace(x)))
|
|
{
|
|
yield return Validation.Error("All Authors is whitespace");
|
|
}
|
|
}
|
|
|
|
public void CopyTo(VRM10ObjectMeta dst)
|
|
{
|
|
dst.Name = Name;
|
|
dst.Version = Version;
|
|
dst.CopyrightInformation = CopyrightInformation;
|
|
if (Authors != null)
|
|
{
|
|
dst.Authors = Authors.Select(x => x).ToList();
|
|
}
|
|
else
|
|
{
|
|
dst.Authors = new List<string>();
|
|
}
|
|
dst.ContactInformation = ContactInformation;
|
|
dst.CopyrightInformation = CopyrightInformation;
|
|
dst.References = References;
|
|
dst.ThirdPartyLicenses = ThirdPartyLicenses;
|
|
dst.Thumbnail = Thumbnail;
|
|
dst.AvatarPermission = AvatarPermission;
|
|
dst.ViolentUsage = ViolentUsage;
|
|
dst.SexualUsage = SexualUsage;
|
|
dst.CommercialUsage = CommercialUsage;
|
|
dst.PoliticalOrReligiousUsage = PoliticalOrReligiousUsage;
|
|
dst.CreditNotation = CreditNotation;
|
|
dst.Redistribution = Redistribution;
|
|
dst.Modification = Modification;
|
|
dst.OtherLicenseUrl = OtherLicenseUrl;
|
|
}
|
|
}
|
|
}
|