Example #1
0
    public void Init(ushort id, byte type, float scl, float time, float actionSpeed, bool actionUnite, float speed, PathLinearInterpolator interp)
    {
        ResFishData fd = FishResManager.Instance.GetFishData(type);

        if (fd == null)
        {
            Debug.Log("不存在的鱼模型:" + type.ToString());
            return;
        }
        m_CatchSeat = 0xff;
        m_bCatched  = false;
        m_Delay     = false;
        m_Scaling   = scl;
        m_FishID    = id;
        m_FishType  = type;

        m_PathCtrl = new PathController();
        m_PathCtrl.ResetController(interp, speed, time, fd.ClipLength[(byte)FishClipType.CLIP_CHAOFENG]);

        m_Model                   = (GameObject)GameObject.Instantiate(FishResManager.Instance.GetFishObj(type));
        m_ModelTransform          = m_Model.GetComponent <Transform>();
        m_ModelTransform.position = FishInitPos;
        m_Anim       = m_Model.GetComponent <Animator>();
        m_OrgRot     = m_ModelTransform.localRotation;
        m_Model.name = m_FishID.ToString();
        SetScaling(scl);
        m_Renderer = m_ModelTransform.GetChild(0).gameObject.GetComponent <Renderer>();
        if (m_Renderer == null)
        {
            m_Renderer = m_ModelTransform.GetChild(1).gameObject.GetComponent <Renderer>();
        }
        m_Anim.speed = actionSpeed;
        if (!actionUnite)
        {
            m_Anim.Play(YouYongHashName, 0, Utility.Range(0.0f, 1.0f));
        }
        if (IsBossFish())
        {
            m_bgsoundDelay = 2;
            GlobalAudioMgr.Instance.StopBgMusic();
            GlobalAudioMgr.Instance.PlayOrdianryMusic(Audio.OrdianryMusic.m_bosscoming);

            KonnoTool.ShowBossComingWindow();
        }
    }
Example #2
0
    public void RenderObj(byte idx, RenderTexture rt)
    {
        Object obj = FishResManager.Instance.GetFishObj(idx);

        if (obj != null)
        {
            ResFishData fd  = FishResManager.Instance.GetFishData(idx);
            float       scl = fd.Size.x / 20;
            m_RTCam.targetTexture = rt;
            GameObject go = (GameObject)GameObject.Instantiate(obj);
            if (go.transform.childCount >= 3)
            {
                go.transform.GetChild(2).gameObject.SetActive(false);
            }
            if (idx == 22)
            {
                go.transform.position = new Vector3(10000, 0, 33 * scl);
            }
            else if (idx == 23)
            {
                go.transform.position = new Vector3(10000, 0, 25 * scl);
            }
            else if (idx == 0)
            {
                go.transform.position = new Vector3(10000, 0, 30 * scl);
            }
            else
            {
                go.transform.position = new Vector3(10000, 0, 25 * scl);
            }
            m_CurObj = go;
            RotateObj(0);
            m_RTCam.Render();
        }
        else
        {
            m_RTCam.targetTexture = null;
        }
    }
Example #3
0
    void NewInitProcedure(object od)
    {
        BinaryReader br             = (BinaryReader)od;
        ushort       pathCount      = br.ReadUInt16();
        ushort       pathGroupCount = br.ReadUInt16();
        ushort       fishGroupCount = br.ReadUInt16();
        ushort       fishDataCount  = br.ReadUInt16();

        for (ushort i = 0; i < pathCount; ++i)
        {
            PathLinearInterpolator pi    = ReadPathData(br);
            PathLinearInterpolator piInv = ReadPathData(br);
            m_PathInterpList.Add(pi);
            m_PathInterpListInv.Add(piInv);
        }

        for (ushort i = 0; i < pathGroupCount; ++i)
        {
            short subPathCount             = br.ReadInt16();
            PathLinearInterpolator[] pi    = ReadPathGroupData(br, subPathCount);
            PathLinearInterpolator[] piInv = ReadPathGroupData(br, subPathCount);
            m_PathGroupList.Add(pi);
            m_PathGroupListInv.Add(piInv);
        }
        for (ushort i = 0; i < fishDataCount; ++i)
        {
            ResFishData fd = new ResFishData();
            fd.Size = Utility.ReadVec3(br);
            Utility.ReadQuaternion(br);
            for (int j = 0; j < (int)FishClipType.CLIP_MAX; ++j)
            {
                fd.ClipLength[j] = br.ReadSingle();
            }
            FishResManager.Instance.AddFishData(fd);
        }
        for (ushort i = 0; i < fishGroupCount; ++i)
        {
            GroupDataList gdl = new GroupDataList();
            FishResManager.Instance.AddGroupData(gdl);
            bool bFishPathGroup = br.ReadBoolean();
            if (bFishPathGroup)
            {
                gdl.PathGroupData = new FishPathGroupData();
                gdl.PathGroupData.PathGroupIndex = br.ReadUInt16();
                gdl.PathGroupData.Speed          = br.ReadSingle();
                gdl.PathGroupData.FishIndex      = br.ReadByte();
                gdl.PathGroupData.FishScaling    = br.ReadSingle();
                gdl.PathGroupData.ActionSpeed    = br.ReadSingle();
                gdl.PathGroupData.ActionUnite    = br.ReadBoolean();
                //重复次数和间隔
                br.ReadUInt16();
                br.ReadUInt16();
            }
            else
            {
                gdl.FrontPosition = Utility.ReadVec3(br);
                ushort subPathCount = br.ReadUInt16();
                gdl.PathList = new ushort[subPathCount];
                for (ushort j = 0; j < subPathCount; ++j)
                {
                    gdl.PathList[j] = br.ReadUInt16();
                }
                ushort groupDataCount = br.ReadUInt16();
                gdl.GroupDataArray = new GroupData[groupDataCount];
                for (ushort j = 0; j < groupDataCount; ++j)
                {
                    GroupData gd = new GroupData();
                    gd.FishIndex    = br.ReadByte();
                    gd.FishNum      = br.ReadUInt16();
                    gd.FishScaling  = br.ReadSingle();
                    gd.SpeedScaling = br.ReadSingle();
                    gd.ActionSpeed  = br.ReadSingle();
                    gd.ActionUnite  = br.ReadBoolean();
                    gd.PosList      = new Vector3[gd.FishNum];
                    for (int n = 0; n < gd.FishNum; ++n)
                    {
                        gd.PosList[n] = Utility.ReadVec3(br);
                    }
                    gdl.GroupDataArray[j] = gd;
                }
            }// end if (pd.FishGroupByPathGroup)
        }

        m_BoLang      = ReadPathData(br);
        m_DouDongPath = ReadPathData(br);
        short subPathCount2 = br.ReadInt16();

        m_LongJuanFeng = ReadPathGroupData(br, subPathCount2);

        m_BoLang.SetWorldPosition(Vector3.zero);
        m_DouDongPath.SetWorldPosition(Vector3.zero);

        for (int i = 0; i < m_LongJuanFeng.Length; ++i)
        {
            m_LongJuanFeng[i].SetWorldPosition(Vector3.zero);
        }

        uint endmagic = br.ReadUInt32();

        if (endmagic != ConstValue.FILE_END_MAGIC)
        {
            LogMgr.Log("路径文件结束不正确.");
        }
        br        = null;
        od        = null;
        m_bInitOK = true;
    }
Example #4
0
 public void AddFishData(ResFishData fd)
 {
     m_FishList.Add(fd);
 }