Example #1
0
    public void ProcessLightingFish(GameObject go1, GameObject go2)
    {
        Object obj  = ResManager.Instance.LoadObject("Ef_thunderFishMain", "SceneRes/Prefab/Effect/ThunderFish/", ResType.SceneRes);
        Object obj2 = ResManager.Instance.LoadObject("Ef_thunderFishLight", "SceneRes/Prefab/Effect/ThunderFish/", ResType.SceneRes);

        Vector3 p1 = Camera.main.WorldToScreenPoint(go1.transform.position);
        Vector3 p2 = Camera.main.WorldToScreenPoint(go2.transform.position);

        p1.z = 0;
        p2.z = 0;
        Vector3 pv1 = ScreenToCenterPoint(p1);
        Vector3 pv2 = ScreenToCenterPoint(p2);

        Vector3 dir  = (pv2 - pv1);
        float   dist = dir.magnitude;

        dir /= dist;
        float dot   = Vector3.Dot(Vector3.right, dir);
        float angle = Mathf.Acos(Mathf.Clamp(dot, -1.0f, 1.0f)) * Mathf.Rad2Deg;

        if (dir.y < 0)
        {
            angle = -angle;
        }

        GameObject       gov1 = (GameObject)GameObject.Instantiate(obj);
        GameObject       gov2 = (GameObject)GameObject.Instantiate(obj2);
        GameObject       gov3 = (GameObject)GameObject.Instantiate(obj2);
        GlobalEffectData efc  = new GlobalEffectData(gov1, 0, 2.0f);

        GlobalEffectMgr.Instance.AddEffect(efc);
        efc = new GlobalEffectData(gov2, 0, 2.0f);
        GlobalEffectMgr.Instance.AddEffect(efc);
        efc = new GlobalEffectData(gov3, 0, 2.0f);
        GlobalEffectMgr.Instance.AddEffect(efc);

        gov1.transform.SetParent(SceneObjMgr.Instance.UIPanelTransform, false);
        gov2.transform.SetParent(SceneObjMgr.Instance.UIPanelTransform, false);
        gov3.transform.SetParent(SceneObjMgr.Instance.UIPanelTransform, false);

        Vector3 ss = gov1.transform.localScale;

        ss.x = dist;
        gov2.transform.localPosition = pv1;
        gov3.transform.localPosition = pv2;
        gov1.transform.localPosition = pv1;
        gov1.transform.localScale    = ss;
        gov1.transform.localRotation = Quaternion.AngleAxis(angle, Vector3.forward);

        FishOptAction fod = new FishOptAction(FishClipType.CLIP_SIWANG, 1.0f);
    }
Example #2
0
    public bool Finish(Fish fish)
    {
        if (DeadType == FishDeadType.DEAD_ACTION)
        {
            if (OptType == FishOptType.FOT_ACTION)
            {
                LogMgr.Log("Action不能再使用死亡动作");
                return(true);
            }
            fish.OrgSpeed = 0.0f;
            FishOptAction foa = new FishOptAction(FishClipType.CLIP_SIWANG, 1.0f, false);
            foa.DeadType  = FishDeadType.DEAD_IMMEDIATE;
            foa.CatchData = CatchData;
            fish.AddOpt(foa);

            if (m_CatchData != null)
            {
                ++m_CatchData.DeadNum;
                SceneRuntime.EffectMgr.FishCatched(fish, m_CatchData);
            }
            return(true);
        }
        else if (DeadType == FishDeadType.DEAD_IMMEDIATE)
        {
            //调用接口
            if (OptType != FishOptType.FOT_ACTION && m_CatchData != null)
            {
                ++m_CatchData.DeadNum;
                SceneRuntime.EffectMgr.FishCatched(fish, m_CatchData);
            }

            return(false);
        }
        else
        {
            return(true);
        }
    }