/// <summary> /// アノテーション名の大文字小文字を無視しして取得する /// </summary> /// <param name="pass">取得対象のパス</param> /// <param name="target">アノテーション名</param> /// <param name="typeName">期待する型</param> /// <returns>アノテーション</returns> public static EffectVariable アノテーションを取得する(EffectPass pass, string target, string typeName) { string name = target.ToLower(); string[] valid = name.Split('/'); for (int i = 0; i < pass.Description.AnnotationCount; i++) { EffectVariable val = pass.GetAnnotationByIndex(i); string typeString = val.Description.Name.ToLower(); if (typeString == name) { if (!valid.Contains(typeString) && !String.IsNullOrWhiteSpace(typeString)) { throw new InvalidMMEEffectShader例外( string.Format( "パス「{0}」に適用されたアノテーション「{1} {2}」はアノテーションの型が正しくありません。期待した型は{3}でした。", pass.Description.Name, typeString, val.Description.Name, _期待される型の一覧を返す(valid, val.Description.Name))); } return(val); } } return(null); }
public static List <EffectVariable> GetAnnotations(this EffectPass pass) { return(GetAsList( pass.Description.AnnotationCount, (i) => pass.GetAnnotationByIndex(i))); }