public MidAttributeFetch(
     SourceRange range,
     MidPath obj,
     MidType type,
     ILazy<MidAttributeDecl> attribute)
     : base(range, new MidDummyType())
 {
     _obj = obj;
     _type = Lazy.Value(type);
     _attribute = attribute;
 }
 public MidAttributeFetch(
     SourceRange range,
     MidPath obj,
     MidAttributeDecl attribute,
     ILazyFactory lazyFactory )
     : base(range, new MidDummyType())
 {
     _obj = obj;
     _type = lazyFactory.New(() => _attribute.Value.Type);
     _attribute = Lazy.Value(attribute);
 }
示例#3
0
    /// <summary>
    /// Builds the asset bundles.
    /// </summary>
    /// <param name="szPackageName">Size package name.</param>
    /// <param name="outZipFile">If set to <c>true</c> out zip file.</param>
    /// <param name="cleaup">If set to <c>true</c> cleaup.</param>
    /// <param name="szDirectory">Size directory.</param>
    /// <param name="szPattern">Size pattern.</param>
    public static bool      BuildAssetBundles(string szInputPath, SearchFileType type)
    {
        if (string.IsNullOrEmpty(szInputPath))
        {
            throw new System.NullReferenceException();
        }

        // create mid path
        if (!Directory.Exists(MidPath))
        {
            Directory.CreateDirectory(MidPath);
        }

        // Search all files
        List <string> aryFile = SearchFile(type, szInputPath);

        if (aryFile.Count <= 0)
        {
            return(false);
        }

        // get directory name
        string[] arySplit = szInputPath.Split('/');
        if (arySplit.Length <= 0)
        {
            return(false);
        }

        AssetBundleBuild ab = new AssetBundleBuild();

        ab.assetNames         = aryFile.ToArray();
        ab.assetBundleVariant = SearchFileType.unity3d.ToString();
        ab.assetBundleName    = arySplit[arySplit.Length - 1];

        // get the assetbundl file path
        string szOutPath = MidPath.Substring(
            Application.dataPath.Length - 6, MidPath.Length - Application.dataPath.Length + 6
            );

        BuildPipeline.BuildAssetBundles(szOutPath, new AssetBundleBuild[] { ab },
                                        BuildAssetBundleOptions.UncompressedAssetBundle, EditorUserBuildSettings.activeBuildTarget);

        return(true);
    }
 public MidFieldRef(
     SourceRange range,
     MidPath obj,
     MidFieldDecl decl)
     : base(range, decl.Type)
 {
     _obj = obj;
     _decl = decl;
 }
 private MidExp TryFoldPath(
     MidVar var,
     MidExp exp,
     MidPath path)
 {
     if (exp is MidFieldRef)
     {
         var midFieldRef = (MidFieldRef)exp;
         if (midFieldRef.Obj is MidVarRef)
         {
             var midVarRef = (MidVarRef) midFieldRef.Obj;
             if (midVarRef.Var == var)
             {
                 midFieldRef.Obj = path;
                 return midFieldRef;
             }
         }
     }
     return exp;
 }