Пример #1
0
        //同步获取资源
        public Object GetAsset(AssetBundleInfoNode assetBundleInfoNode, string assetName, System.Type assetType, string requester)
        {
            var asset = assetBundleInfoNode.GetAsset(assetName, assetType, requester);

            if (asset != null)
            {
                this.requester = requester;

                if (originalRequests == null)
                {
                    originalRequests = new HashSet <string>(System.StringComparer.CurrentCultureIgnoreCase);
                }

                if (!originalRequests.Contains(assetBundleInfoNode.bundleName))
                {
                    originalRequests.Add(assetBundleInfoNode.bundleName);
                }
            }
            return(asset);
        }
Пример #2
0
        public static PrefabAssetNode Create(AssetBundleInfoNode infoNode, string assetName)
        {
            if (infoNode == null)
            {
                Debug.LogError("Create AssetInfoNode failed. Empty infoNode...");
                return(null);
            }

            GameObject original = infoNode.GetAsset <GameObject>(assetName, string.Format("PrefabAssetNode_{0}", assetName));

            if (original == null)
            {
                Debug.LogError("Create AssetInfoNode failed. Can not get gameobject asset ==> " + assetName);
                return(null);
            }

            PrefabAssetNode node = nodePool.Get();

            node.infoNode     = infoNode;
            node.assetName    = assetName;
            node.originPrefab = original;

            return(node);
        }