/// <summary> /// アノテーション名の大文字小文字を無視しして取得する /// </summary> /// <param name="technique">取得対象のテクニック</param> /// <param name="target">アノテーション名</param> /// <param name="typeName">期待する型</param> /// <returns>アノテーション</returns> public static EffectVariable アノテーションを取得する(EffectTechnique technique, string target) { string name = target.ToLower(); string[] valid = name.Split('/'); for (int i = 0; i < technique.Description.AnnotationCount; i++) { EffectVariable val = technique.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}でした。", technique.Description.Name, typeString, val.Description.Name, _期待される型の一覧を返す(valid, val.Description.Name))); } return(val); } } return(null); }
public static List <EffectVariable> GetAnnotations(this EffectTechnique technique) { return(GetAsList( technique.Description.AnnotationCount, (i) => technique.GetAnnotationByIndex(i))); }