Exemplo n.º 1
0
        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;
            }
        }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
        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;
		}