zxhhst 发表于 2013-6-17 11:38

unity3d 在android机器里读二进制文件里的数据

本帖最后由 zxhhst 于 2013-6-17 11:41 编辑

各位我也查了3天。
第一步: 听雨松的:
假设你的程序中已经预先将2进制文件做好,如下图所示,你需要把二进制文件放在StreamingAssets这个文件夹中,一定要放在这里。 举个例子,放在StreamingAssets中二进制文件打包后,Unity会将这些二进制文件放置在对应平台下的路径下。所以根据不同平台,访问的路径是不一样的。切记,你的二进制文件一定要放在StreamingAssets !!!!!!
第二步下面程序:
using UnityEngine;
using System.Collections;
using System.IO;   
using System.Collections.Generic;   
using System;   
public class TexturePoint : MonoBehaviour {
   
    String result;
    String filePath;
      byte[] myAllByte1=new byte;
      byte[] myAllByte2=new byte;
      byte[] myByte1;
      byte[] myByte2;
      Texture2Dtexture=null;
      Stringpath=null;
      BufferedStream myBS=null;
    byte[] myByte;
    byte[] myFileHead;
    int bmpFileLen;
    int bmpWidth;
    int bmpHeight;      
      int x=0;
      int y=0;
      
      IEnumerator Start ()
      {
            filePath= System.IO.Path.Combine(Application.streamingAssetsPath, "0.bmp");
                myAllByte2=0;
                myAllByte1=0;
               
               
      WWW www = new WWW(filePath);
      yield return www;
      myAllByte2 = www.bytes;
               
                //myAllByte1 = System.IO.File.ReadAllBytes(filePath);
               
                /*
               
      myFileHead=new byte;
            for(int i = 0 ; i<0x46;i++)
            {
                     myFileHead = myAllByte1;      
            }
      
      
      //读位图的数据
      bmpWidth   = myFileHead*0x1000000+myFileHead*0x10000+myFileHead*0x100+myFileHead;
      bmpHeight= myFileHead*0x1000000+myFileHead*0x10000+myFileHead*0x100+myFileHead;
      bmpFileLen = myFileHead*0x1000000+myFileHead*0x10000+myFileHead*0x100+myFileHead;
      myByte=new byte;
      
            for(int i = 0;i<bmpFileLen;i++)      
            {
            myByte= myAllByte1;               
            }
   
      texture = new Texture2D(132, 182);                  
   
   
            Color tmColor = new Color(0,0,0,0);
            for ( x = 0; x <132; x++) {
            for ( y = 0; y < 182; y++){      
                  //if(myByte!=0)
                        //{            
                              texture.SetPixel(x,y,Color.red);
                        //}
                        //else
                        //{
                           //texture.SetPixel(x,y,tmColor);
                        //}
                }
      }
      
      texture.Apply();   
                */
    }
/**
*
*
*/

         IEnumerator Example()
         {
      if (filePath.Contains("://"))
                {
                        
            WWW www = new WWW(filePath);
            yield return www;
            myAllByte2 = www.bytes;
                        filePath +="00";
      } else
                {
            //result = System.IO.File.ReadAllText(filePath);
                  myAllByte1 = System.IO.File.ReadAllBytes(filePath);
                        filePath +="01";
                }
      }
      

      void OnGUI()   
    {   
      //读取文件中的所有内容   
                //GUI.DrawTexture(new Rect(0,0,400,400),"1111"+a);
                   //GUI.DrawTexture(new Rect(0,0,400,400),texture);
               bytea = myAllByte2;
               GUILayout.Button(a.ToString("x"));
               byteb = myAllByte2;
               GUILayout.Button(b.ToString("x"));
               a = myAllByte2;
               GUILayout.Button(a.ToString("x"));
               b = myAllByte2;
               GUILayout.Button(b.ToString("x"));
               
               //if(myAllByte2!=0)
                  if(myAllByte2!=0)
                     GUILayout.Button(filePath);

    }   
      
}

身体不是自己的是向这个世界借来的。技术不是自己的是向这个世界借来用的,真心付出,不用保留。


资源大湿 发表于 2013-6-18 08:37

此贴是应该放在教程区

zxhhst 发表于 2013-6-18 09:17

小米 发表于 2013-6-18 08:37 static/image/common/back.gif
此贴是应该放在教程区


不错 不错 不错{:soso__3922851084632044791_6:}

魔灵 发表于 2013-6-18 09:35

噢 学习了{:5_435:}

tiaoshiok1 发表于 2017-4-1 09:36

顶顶多好

dajiangaok 发表于 2017-4-1 09:59

真心顶

wonderm 发表于 2017-4-1 09:52

说的非常好

leeliang1987 发表于 2017-4-1 10:20

很好哦

yjzmedia 发表于 2017-4-1 10:04

LZ真是人才

zwluoqi 发表于 2017-5-10 16:09

很不错
页: [1]
查看完整版本: unity3d 在android机器里读二进制文件里的数据