//创建子弹 public static Fishing_Bullet Create(AssetBundle ab, Vector3 pos, Quaternion q, FishingCannonData fcd, GameObject target, uint bulletId) { GameObject prefab = (GameObject)ab.LoadAsset(fcd.m_szBullet); GameObject fireSprite = (GameObject)Instantiate(prefab, pos, q); Fishing_Bullet f = fireSprite.AddComponent <Fishing_Bullet>(); fireSprite.transform.SetParent(ParentTfm, false); f.m_fMoveSpeed = fcd.m_fBulletSpeed; f.m_nBounceTimes = fcd.m_nBounceTimes; f.m_szNet = fcd.m_szNet; f.m_Target = target; f.m_Id = bulletId; if (target != null) { f.m_nBounceTimes = 1; } Destroy(fireSprite, fcd.m_fBulletLifeTime); return(f); }
public static Fishing_Cannon Create(AssetBundle ab, Transform parent, byte id, byte level, uint bulletCost) { FishingCannonData fcd = Fishing_Data.GetInstance().m_CannonData[id]; GameObject obj = (GameObject)ab.LoadAsset(fcd.m_szCannon); obj = ((GameObject)GameMain.instantiate(obj)); obj.transform.SetParent(parent, false); obj.transform.Find(fcd.m_szLvPoint).GetComponent <UnityEngine.UI.Text>().text = level.ToString(); Fishing_Cannon fc = obj.AddComponent <Fishing_Cannon>(); fc.m_Data = fcd; fc.m_nTypeId = id; fc.m_nBulletCost = bulletCost * (uint)fcd.m_szBulletPoint.Length; if (fcd.m_nAudio != 0) { AudioSource audioSrc = obj.AddComponent <AudioSource>(); audioSrc.clip = ab.LoadAsset <AudioClip>(CustomAudioDataManager.GetInstance().GetSoundName(fcd.m_nAudio)); } return(fc); }
void ReadFishingData() { List <string[]> strList; int j; byte id; ushort pathId; byte temp; CReadCsvBase.ReaderCsvDataFromAB(GameDefine.CsvAssetbundleName, "Fishing_Cannon.txt", out strList); int columnCount = strList.Count; for (int i = 2; i < columnCount; i++) { j = 0; FishingCannonData gamedata = new FishingCannonData(); byte.TryParse(strList[i][j++], out id); gamedata.m_szCannon = strList[i][j++]; gamedata.m_szBullet = strList[i][j++]; float.TryParse(strList[i][j++], out gamedata.m_fBulletSpeed); float.TryParse(strList[i][j++], out gamedata.m_fBulletCD); float.TryParse(strList[i][j++], out gamedata.m_fBulletLifeTime); byte.TryParse(strList[i][j++], out gamedata.m_nBounceTimes); //float.TryParse(strList[i][j++], out gamedata.m_fExplosinRange); j++; gamedata.m_szNet = strList[i][j++]; //int.TryParse(strList[i][j++], out gamedata.m_nBulletCost); j++; //level not read j++; gamedata.m_szBulletPoint = strList[i][j++].Split('|'); gamedata.m_szLvPoint = strList[i][j++]; //gamedata.m_szIcon = strList[i][j++]; j++; int.TryParse(strList[i][j++], out gamedata.m_nAudio); j += 2; gamedata.m_szName = strList[i][j++]; gamedata.m_szDetail = strList[i][j++]; m_CannonData[id] = gamedata; } strList.Clear(); CReadCsvBase.ReaderCsvDataFromAB(GameDefine.CsvAssetbundleName, "Fishing_Path.txt", out strList); columnCount = strList.Count; for (int i = 2; i < columnCount; i++) { j = 0; FishingPathData gamedata = new FishingPathData(); ushort.TryParse(strList[i][j++], out pathId); gamedata.m_szPath = strList[i][j++]; float.TryParse(strList[i][j++], out gamedata.m_fSpeed); float.TryParse(strList[i][j++], out gamedata.m_fTime); byte.TryParse(strList[i][j++], out temp); gamedata.m_bLoop = temp == 0 ? false : true; string str = strList[i][j++]; if (!string.IsNullOrEmpty(str)) { string[] offsets = str.Split('@'); string[] point; foreach (string oft in offsets) { point = oft.Split('|'); Debug.Assert(point.Length == 3, "offset point coordinate wrong(not 3)!!"); Vector3 pos = new Vector3(); float.TryParse(point[0], out pos.x); float.TryParse(point[1], out pos.y); float.TryParse(point[2], out pos.z); gamedata.m_Offsets.Add(pos); } } str = strList[i][j++]; if (!string.IsNullOrEmpty(str)) { string[] speedChange = str.Split('@'); string[] info; foreach (string sc in speedChange) { info = sc.Split('|'); Debug.Assert(info.Length == 3, "point change speed info is wrong(not 3)!!"); byte pointIndex, endIndex; float speed, time; byte.TryParse(info[0], out pointIndex); float.TryParse(info[1], out speed); if (speed == 0f)//pause { float.TryParse(info[2], out time); gamedata.m_ChangePoints[pointIndex] = -time; } else//change speed { byte.TryParse(info[2], out endIndex); gamedata.m_ChangePoints[pointIndex] = speed; gamedata.m_ChangePoints[endIndex] = 1f;//change back } } } m_PathData[pathId] = gamedata; } strList.Clear(); CReadCsvBase.ReaderCsvDataFromAB(GameDefine.CsvAssetbundleName, "Fishing_Fish.txt", out strList); columnCount = strList.Count; for (int i = 2; i < columnCount; i++) { j = 0; FishingFishData gamedata = new FishingFishData(); byte.TryParse(strList[i][j++], out id); gamedata.m_szFish = strList[i][j++]; string[] groupspeed = strList[i][j++].Split('@'); string[] speedStr; foreach (string speed in groupspeed) { speedStr = speed.Split('|'); Debug.Assert(speedStr.Length == 2, "group speed data is wrong(not 2)!!"); gamedata.m_GroupSpeed[byte.Parse(speedStr[0])] = float.Parse(speedStr[1]); } //float.TryParse(strList[i][j++], out gamedata.m_fHitRate); j++; int.TryParse(strList[i][j++], out gamedata.m_nMultiple); j += 5; int.TryParse(strList[i][j++], out gamedata.m_nHitAudio); int.TryParse(strList[i][j++], out gamedata.m_nDeadAudio); string[] strs = strList[i][j++].Split('|'); if (strs.Length == 3) { byte.TryParse(strs[0], out gamedata.m_nTalkInterval); byte.TryParse(strs[1], out gamedata.m_nTalkShowTime); gamedata.m_szTalk = strs[2]; } j += 3; byte.TryParse(strList[i][j++], out temp); gamedata.m_eFishType = (FishType)temp; gamedata.m_szName = strList[i][j++]; gamedata.m_szIcon = strList[i][j++]; byte.TryParse(strList[i][j++], out gamedata.m_nRotType); m_FishData[id] = gamedata; } }