public static bool TryGetMemberType(GameObject gameObject, string path, out Type value) { try { var mr = new MemberResolver(gameObject, path); value = mr.GetMemberType(); return true; } catch (InvalidPathException) { value = null; return false; } }
public static bool TryGetMemberType(GameObject gameObject, string path, out Type value) { try { var mr = new MemberResolver(gameObject, path); value = mr.GetMemberType(); return(true); } catch (InvalidPathException) { value = null; return(false); } }
public IList <string> GetFieldsAndPropertiesFromGameObject(GameObject gameObject, int depthOfSearch, string extendPath) { if (depthOfSearch < 1) { throw new ArgumentOutOfRangeException("depthOfSearch need to be greater than 0"); } var goVals = GetPropertiesAndFieldsFromType(typeof(GameObject), depthOfSearch - 1).Select(s => "gameObject." + s); var result = new List <string>(); if (AllowedTypes == null || !AllowedTypes.Any() || AllowedTypes.Contains(typeof(GameObject))) { result.Add("gameObject"); } result.AddRange(goVals); foreach (var componentType in GetAllComponents(gameObject)) { if (AllowedTypes == null || !AllowedTypes.Any() || AllowedTypes.Any(t => t.IsAssignableFrom(componentType))) { result.Add(componentType.Name); } if (depthOfSearch > 1) { var vals = GetPropertiesAndFieldsFromType(componentType, depthOfSearch - 1); var valsFullName = vals.Select(s => componentType.Name + "." + s); result.AddRange(valsFullName); } } if (!string.IsNullOrEmpty(extendPath)) { var memberResolver = new MemberResolver(gameObject, extendPath); var pathType = memberResolver.GetMemberType(); var vals = GetPropertiesAndFieldsFromType(pathType, depthOfSearch - 1); var valsFullName = vals.Select(s => extendPath + "." + s); result.AddRange(valsFullName); } return(result); }
public IList<string> GetFieldsAndPropertiesFromGameObject ( GameObject gameObject, int depthOfSearch, string extendPath ) { if(depthOfSearch<1) throw new ArgumentOutOfRangeException("depthOfSearch need to be greater than 0"); var goVals = GetPropertiesAndFieldsFromType(typeof(GameObject), depthOfSearch - 1).Select(s => "gameObject." + s); var result = new List<string>(); if (AllowedTypes == null || !AllowedTypes.Any() || AllowedTypes.Contains(typeof(GameObject))) result.Add("gameObject"); result.AddRange (goVals); foreach (var componentType in GetAllComponents(gameObject)) { if (AllowedTypes == null || !AllowedTypes.Any() || AllowedTypes.Contains(componentType)) result.Add(componentType.Name); if (depthOfSearch > 1) { var vals = GetPropertiesAndFieldsFromType (componentType, depthOfSearch - 1 ); var valsFullName = vals.Select (s => componentType.Name + "." + s); result.AddRange (valsFullName); } } if (!string.IsNullOrEmpty (extendPath)) { var memberResolver = new MemberResolver (gameObject, extendPath); var pathType = memberResolver.GetMemberType (); var vals = GetPropertiesAndFieldsFromType (pathType, depthOfSearch - 1); var valsFullName = vals.Select (s => extendPath + "." + s); result.AddRange (valsFullName); } return result; }