Exemple #1
0
    //创建子弹
    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);
    }
Exemple #2
0
    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);
    }
Exemple #3
0
    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;
        }
    }