static void makeMotionEnum(MotionClip motionClip) { string replace_(string src) => src .Replace(' ', '_') .Replace('(', '_').Replace(')', '_').Replace('[', '_').Replace(']', '_') .Replace("+", "Plus").Replace("-", "Minus") ; var qNameList = from x in motionClip.ClipNames select replace_(x) ; var name = replace_(motionClip.name); ConstCreator.Create($"{name}", qNameList, $"Assets/{name}_indices.cs"); }
static public void Create() { if (Selection.objects == null) { return; } makeConstListFile_(Selection.objects); return; void makeConstListFile_(UnityEngine.Object[] selectedObjects) { var catnameIdLists = from asset in selectedObjects.OfType <PhysicsCategoryNames>() select new { assetname = asset.name, categories = from x in asset.CategoryNames.Select((cat, i) => (cat, i)) where x.cat != "" select x }; var catnameFlagLists = from asset in catnameIdLists select new { asset.assetname, categories = asset.categories.Select(x => (x.cat, i: 1 << x.i)) }; foreach (var x in catnameIdLists) { ConstCreator.Create($"{x.assetname}Id", x.categories, $"Assets/{x.assetname}Id.cs"); } foreach (var x in catnameFlagLists) { ConstCreator.Create($"{x.assetname}Flag", x.categories, $"Assets/{x.assetname}Flag.cs"); } } } }