示例#1
0
 public IEnumerable <SerializedGameObject> GetObjectsByComponent(SerializedMonoScript script)
 {
     foreach (var assetFile in AllAssetFiles())
     {
         foreach (var gameObject in assetFile.GetObjectsByComponent(script))
         {
             yield return(gameObject);
         }
     }
 }
示例#2
0
        public ISerializedItem ReadMonoScriptChild(SerializedMonoScript script)
        {
            // TODO Add namespace
            var key = '.' + script.ClassName;

            if (!_scriptTypeMap.ContainsKey(key))
            {
                return(null);
            }

            var child = (ISerializedItem)Activator.CreateInstance(_scriptTypeMap[key]);

            child.DeserializeAsset(this, _stream);

            return(child);
        }
示例#3
0
        public IEnumerable <SerializedGameObject> GetObjectsByComponent(SerializedMonoScript script)
        {
            if (!TypesByPropHash.TryGetValue(script.PropertiesHash.ToByteArray(), out var types))
            {
                yield break;
            }

            if (types.Count == 1)
            {
                foreach (var obj in GetObjectsByType <SerializedMonoBehaviour>(types[0]))
                {
                    yield return((SerializedGameObject)obj.GameObject.LoadValue());
                }
            }
            else if (types.Count > 1)
            {
                throw new NotImplementedException();
            }
        }
示例#4
0
 public SerializedGameObject GetObjectByComponent(SerializedMonoScript script)
 {
     return(GetObjectsByComponent(script).FirstOrDefault());
 }