/// <summary> /// 通过script oder一定在最开头初始化 /// </summary> void Awake() { mSingleton = Singleton;//初始化数据 //Singleton.ArcIO.Open(); EvtInputKey += Handle_InputKey; State_ = State.Idle; //使用的屏幕数量 ScreenNumUsing = IsMoreThanOneScreen() ? 2 : 1; //初始化 2D世界范围 WorldDimension.x = Defines.WorldDimensionUnit.x - Defines.WorldDimensionUnit.width * 0.5F * (ScreenNumUsing - 1); WorldDimension.y = Defines.WorldDimensionUnit.y; WorldDimension.width = Defines.WorldDimensionUnit.width * ScreenNumUsing; WorldDimension.height = Defines.WorldDimensionUnit.height; //鱼序号赋值 for (int i = 0; i != FishGenerator.Prefab_FishAll.Length; ++i) { FishGenerator.Prefab_FishAll[i].TypeIndex = i; } mPControllerIDToPlayerID = new int[Defines.MaxNumPlayer]; //初始化人数 Defines.NumPlayer = Defines.GunLayoutTypeToNumPlay[(int)BSSetting.GunLayoutType_.Val]; //设置分辨率 #if UNITY_EDITOR UnityEditor.PlayerSettings.defaultScreenWidth = Defines.ScreenWidthUnit * ScreenNumUsing; UnityEditor.PlayerSettings.defaultScreenHeight = Defines.ScreenHeightUnit; #else Screen.SetResolution(Defines.ScreenWidthUnit * ScreenNumUsing, Defines.ScreenHeightUnit, false); #endif //显示USB连接信息 #if !UNITY_EDITOR if (!ArcIO.IsOpen()) { ViewUsbHidErroHint(); } #endif //设置是否锁帧 //Application.targetFrameRate = 60; mControlBoardState = new bool[ScreenNumUsing]; for (int i = 0; i != ScreenNumUsing; ++i) { mControlBoardState[i] = true; } Time.timeScale = GameSpeed; }
public HotFileDbFRAMIO(string key, string filePath) { if (GameMain.Singleton != null) { mMCU = GameMain.Singleton.ArcIO; } if (mMCU == null) { mMCU = INemoControlIOSinglton.Get(); } //????????????? if (mConn == null) { if (DataBaseName == "") { DataBaseName = "GameDB.db"; } string dataPath = System.Environment.CurrentDirectory + "/DataFiles"; if (!Directory.Exists(dataPath)) { Directory.CreateDirectory(dataPath); } mConn = new SqliteConnection("Data Source = DataFiles/" + DataBaseName + ";"); mConn.Open(); if (mCMD == null) { mCMD = mConn.CreateCommand(); mCMD.Parameters.Add(new SqliteParameter()); } mCMD.CommandText = "PRAGMA journal_mode =wal;";//wal?? mCMD.ExecuteNonQuery(); } mKey = key; mDBType = GetDBType(); //bool isInitFRAMByDB = false; //?????DB_FARM_ID if (mMCU.IsOpen() && DB_ID == System.Guid.Empty) { using (SqliteCommand cmd = mConn.CreateCommand()) { cmd.CommandText = "CREATE TABLE IF NOT EXISTS _DB_GUID(Val BLOB);"; //cmd.Parameters.Add("@data", System.Data.DbType.Binary).Value = System.Guid.Empty.ToByteArray(); cmd.ExecuteNonQuery(); cmd.CommandText = string.Format(" SELECT * FROM _DB_GUID;"); SqliteDataReader r = cmd.ExecuteReader(); r.Read(); if (r.HasRows)//???????????????? { //???????????guid? DB_ID = new System.Guid(r.GetValue(0) as byte[]); //???FRAM??guid? byte[] guidFRAMByte = null; if (mMCU.Read_Block(0, 16, out guidFRAMByte))//??FRAM???guid??? { System.Guid FRAMEGUID = new System.Guid(guidFRAMByte); if (FRAMEGUID != DB_ID) //FRAM??db??guid????? { mMCU.RequestReadWrite(true, 0, 16, DB_ID.ToByteArray()); //??dbid§Õ??FRAM IsInitFRAMByDB = true; } } r.Close(); } else//?????????guid { r.Close(); //??????dbGUID DB_ID = System.Guid.NewGuid(); byte[] guidByteNew = DB_ID.ToByteArray(); //????db cmd.CommandText = "INSERT INTO _DB_GUID VALUES (@data)"; cmd.Parameters.Add("@data", System.Data.DbType.Binary).Value = guidByteNew; cmd.ExecuteNonQuery(); //?????????guid ????FRAM mMCU.RequestReadWrite(true, 0, 16, guidByteNew); IsInitFRAMByDB = true; } } } //??????(4294967295 == 0xffffffff) mCMD.CommandText = string.Format("CREATE TABLE IF NOT EXISTS {0:s}(Val {1:s} KEY DEFAULT {2:s},Address INTEGER DEFAULT 4294967295,Length INTEGER DEFAULT {3:d});", mKey, GetDBTypeString(), GetDefaultDBValString(), GetValLength()); mCMD.ExecuteNonQuery(); //??????????????? mCMD.CommandText = string.Format(" SELECT * FROM {0:s};", mKey); SqliteDataReader reader = mCMD.ExecuteReader(); reader.Read(); // //System.Guid.NewGuid(); if (reader.HasRows)//???????????????? { //???????????????????????? mAddress = (uint)reader.GetInt64(1); mDataLength = (byte)reader.GetInt32(2); if (IsInitFRAMByDB) { WriteToFRAM(ObjectToVal(reader.GetValue(0))); } reader.Close(); } else//????????????????,???????? { mAddress = CurrentUseAddress; mDataLength = (byte)GetValLength(); reader.Close(); //??????????? mCMD.CommandText = string.Format("INSERT INTO {0:s} VALUES({1:s},{2:d},{3:d})", mKey, GetDefaultDBValString(), mAddress, mDataLength); CurrentUseAddress += GetValLength();//??????? mCMD.ExecuteNonQuery(); //?????farm WriteToFRAM(GetDefaultVal()); } mUpdateSQLText = "UPDATE " + mKey + " SET Val = ?;"; ++SqliteConnRefCount; HotFileDBIOReleaser.HotFileDBReg(this); HotFileDBFRAM_Updater.Reg(this); }