public GameObjectNameGroupNameBinder FromPrefabResource(string resourcePath) { BindingUtil.AssertIsValidResourcePath(resourcePath); var gameObjectInfo = new GameObjectBindInfo(); if (ContractType == typeof(GameObject)) { SubFinalizer = CreateFinalizer( (container) => new PrefabGameObjectProvider( new PrefabInstantiator( container, gameObjectInfo.Name, gameObjectInfo.GroupName, new List <TypeValuePair>(), new PrefabProviderResource(resourcePath)))); } else { BindingUtil.AssertIsAbstractOrComponent(ContractType); SubFinalizer = CreateFinalizer( (container) => new GetFromPrefabComponentProvider( ContractType, new PrefabInstantiator( container, gameObjectInfo.Name, gameObjectInfo.GroupName, new List <TypeValuePair>(), new PrefabProviderResource(resourcePath)))); } return(new GameObjectNameGroupNameBinder(BindInfo, gameObjectInfo)); }
public GameObjectNameGroupNameBinder FromPrefab(UnityEngine.Object prefab) { BindingUtil.AssertIsValidPrefab(prefab); var gameObjectInfo = new GameObjectCreationParameters(); if (ContractType == typeof(GameObject)) { SubFinalizer = CreateFinalizer( (container) => new PrefabGameObjectProvider( new PrefabInstantiator( container, gameObjectInfo, new List <TypeValuePair>(), new PrefabProvider(prefab)))); } else { BindingUtil.AssertIsAbstractOrComponent(ContractType); SubFinalizer = CreateFinalizer( (container) => new GetFromPrefabComponentProvider( ContractType, new PrefabInstantiator( container, gameObjectInfo, new List <TypeValuePair>(), new PrefabProvider(prefab)))); } return(new GameObjectNameGroupNameBinder(BindInfo, gameObjectInfo)); }