示例#1
0
    public static int CreateGuideInMainScene(ILuaState lua)
    {
        int                    stk        = 1;
        GuideAimType           type       = (GuideAimType)L.ToInteger(stk++);
        float                  offsetX    = (float)L.ToNumber(stk++);
        float                  offsetY    = (float)L.ToNumber(stk++);
        GuidePointerRotateType rotateType = (GuidePointerRotateType)L.ToInteger(stk++);
        string                 str        = (string)L.ToString(stk++);

        StringTool.UTF8String(ref str);
        float alpha = (float)L.ToNumber(stk++);
        bool  mask  = (bool)L.ToBoolean(stk++);
        int   step  = (int)L.ToInteger(stk++);

        if (Mathf.Approximately(alpha, 0f))
        {
            GuideManager.Instance.CreateMaskInScene(type, offsetX, offsetY, rotateType, str, step, mask);
        }
        else
        {
            GuideManager.Instance.CreateMaskInScene(type, offsetX, offsetY, rotateType, str, step, mask, alpha);
        }

        return(0);
    }
示例#2
0
    public void CreateMaskInScene(GuideAimType type, float offsetX, float offsetY, GuidePointerRotateType rotateType, string str, int step, bool mask = false, float alpha = 0.7f)
    {
        IsGuiding_ = true;
        UIManager.Instance.DoDeActive();
        switch (type)
        {
        case GuideAimType.GAT_MainCrystal:
            GameObject aim = GameObject.FindGameObjectWithTag("PVE");
            creator_.CreateInScene(aim, offsetX, offsetY, rotateType, str, step, alpha, mask);
            break;

        case GuideAimType.GAT_MainJiubaHouse:
            GameObject aim2 = GameObject.FindGameObjectWithTag("jiuba");
            creator_.CreateInScene(aim2, offsetX, offsetY, rotateType, str, step, alpha, mask);
            break;

        case GuideAimType.GAT_MainCastle:
            GameObject aim3 = GameObject.FindGameObjectWithTag("Team");
            creator_.CreateInScene(aim3, offsetX, offsetY, rotateType, str, step, alpha, mask);
            break;

        case GuideAimType.GAT_MainJJC:
            GameObject aim4 = GameObject.FindGameObjectWithTag("arena");
            creator_.CreateInScene(aim4, offsetX, offsetY, rotateType, str, step, alpha, mask);
            break;

        default:
            break;
        }
        crtGuideType_ = GuideType.GT_Scene;
    }
示例#3
0
    public static int CreateGuideWithItemID(ILuaState lua)
    {
        int   stk         = 1;
        int   itemId      = L.ToInteger(stk++);
        BagUI baguiScript = GameObject.FindObjectOfType <BagUI>();

        if (baguiScript == null)
        {
            return(0);
        }

        GameObject             icon       = baguiScript.GetItemObj(itemId);
        float                  offsetX    = (float)L.ToNumber(stk++);
        float                  offsetY    = (float)L.ToNumber(stk++);
        GuidePointerRotateType rotateType = (GuidePointerRotateType)L.ToInteger(stk++);
        string                 str        = (string)L.ToString(stk++);

        StringTool.UTF8String(ref str);
        float alpha = (float)L.ToNumber(stk++);
        bool  mask  = (bool)L.ToBoolean(stk++);
        int   step  = (int)L.ToInteger(stk++);

        if (Mathf.Approximately(alpha, 0f))
        {
            GuideManager.Instance.CreateMask(icon, offsetX, offsetY, rotateType, str, step, mask);
        }
        else
        {
            GuideManager.Instance.CreateMask(icon, offsetX, offsetY, rotateType, str, step, mask, alpha);
        }
        return(0);
    }
示例#4
0
    public static int CreateGuideWithSkillID(ILuaState lua)
    {
        int                    stk        = 1;
        int                    skillId    = L.ToInteger(stk++);
        GameObject             skill      = LearningUI.Instance.GetSkillObjByID(skillId);
        float                  offsetX    = (float)L.ToNumber(stk++);
        float                  offsetY    = (float)L.ToNumber(stk++);
        GuidePointerRotateType rotateType = (GuidePointerRotateType)L.ToInteger(stk++);
        string                 str        = (string)L.ToString(stk++);

        StringTool.UTF8String(ref str);
        float alpha = (float)L.ToNumber(stk++);
        bool  mask  = (bool)L.ToBoolean(stk++);
        int   step  = (int)L.ToInteger(stk++);

        if (Mathf.Approximately(alpha, 0f))
        {
            GuideManager.Instance.CreateMask(skill, offsetX, offsetY, rotateType, str, step, mask);
        }
        else
        {
            GuideManager.Instance.CreateMask(skill, offsetX, offsetY, rotateType, str, step, mask, alpha);
        }
        return(0);
    }
示例#5
0
    public void CreateMaskInBattle(int battlePos, float offsetX, float offsetY, GuidePointerRotateType rotateType, string str, int step, bool mask = false, float alpha = 0.7f)
    {
        IsGuiding_ = true;
        BattleActor actor = Battle.Instance.GetActorByIdx(battlePos);

        creator_.CreateInScene(actor.ControlEntity.ActorObj, offsetX, offsetY, rotateType, str, step, alpha, mask);
        crtGuideType_ = GuideType.GT_Scene;
    }
示例#6
0
 public void Begin(GameObject aimObj, float offsetX, float offsetY, GuidePointerRotateType rotateType, string str)
 {
     isLocalPos_        = false;
     offsetX_           = offsetX;
     offsetY_           = offsetY;
     aimObj_            = aimObj;
     transform.position = new Vector2(aimObj.transform.position.x + offsetX, aimObj.transform.position.y + offsetY);
     originPos_         = arrowsImg.transform.position;
     Set(rotateType, str);
 }
示例#7
0
 public void CreateMask(GuideAimType gaType, float offsetX, float offsetY, GuidePointerRotateType rotateType, string str, int step, bool mask = false, float alpha = 0.7f)
 {
     if (!guideAimDic_.ContainsKey(gaType))
     {
         return;
     }
     IsGuiding_    = true;
     crtGuideType_ = GuideType.GT_UI;
     creator_.Create(guideAimDic_[gaType], offsetX, offsetY, rotateType, str, step, alpha, mask);
 }
示例#8
0
    public void BeginInScene(GameObject aimObj, float offsetX, float offsetY, GuidePointerRotateType rotateType, string str)
    {
        isLocalPos_ = true;
        wave_       = 60f;
        offsetX_    = offsetX;
        offsetY_    = offsetY;
        aimObj_     = aimObj;
        Vector3 uiPos = GlobalInstanceFunction.WorldToUI(aimObj_.transform.position);

        transform.localPosition = new Vector2(uiPos.x + offsetX, uiPos.y + offsetY);
        originPos_ = arrowsImg.transform.localPosition;
        Set(rotateType, str);
    }
示例#9
0
 //TODO TEST
 public void CreateMaskInScene(int npcId, float offsetX, float offsetY, GuidePointerRotateType rotateType, string str, int step, bool mask = false, float alpha = 0.7f)
 {
     IsGuiding_ = true;
     UIManager.Instance.DoDeActive();
     GameObject[] npc = GameObject.FindGameObjectsWithTag("NPC");
     for (int i = 0; i < npc.Length; ++i)
     {
         if (npc[i].name.Equals(npcId.ToString()))
         {
             creator_.CreateInScene(npc[i], offsetX, offsetY, rotateType, str, step, alpha, mask);
         }
     }
     crtGuideType_ = GuideType.GT_Scene;
 }
示例#10
0
    public void Create(GameObject guideObj, float offsetX, float offsetY, GuidePointerRotateType rotateType, string str, int step, float alpha = 0.7f, bool mask = false)
    {
        if (guideObj == null)
        {
            return;
        }

        if (crtGuideObj_ != null && crtGuideObj_.Equals(guideObj))
        {
            return;
        }

        ClearGuide();
        if (ChatUI.Instance.BigChatOpen())
        {
            ChatUI.Instance.SwitchChatObjActive();
        }
        guideRoot_ = new GameObject("GuideMask");
        if (mask)
        {
            ShowBlack(alpha, step);
        }
        guideRoot_.transform.parent     = ApplicationEntry.Instance.uiRoot.transform;
        guideRoot_.transform.localScale = Vector3.one;
        NGUITools.SetLayer(guideRoot_, LayerMask.NameToLayer("UI"));
        NGUITools.SetChildLayer(guideRoot_.transform, LayerMask.NameToLayer("UI"));

        crtGuideObj_ = guideObj;
        UIPanel guide = guideObj.GetComponent <UIPanel>();

        if (guide == null)
        {
            guide            = guideObj.AddComponent <UIPanel>();
            needRemovePanel_ = true;
        }
        panelDepth_        = guide.depth;
        panelSortOrder_    = guide.sortingOrder;
        guide.depth        = GuideDepth + 1;
        guide.sortingOrder = GuideDepth + 1;
        guideObj.SetActive(false);
        guideObj.SetActive(true);

        GameObject pointer = (GameObject)GameObject.Instantiate(pointerPrefab_);

        pointer.GetComponent <GuidePointer>().Begin(crtGuideObj_, offsetX, offsetY, rotateType, str);
        pointer.transform.parent     = guideRoot_.transform;
        pointer.transform.localScale = Vector3.one;
    }
示例#11
0
    void Set(GuidePointerRotateType rotateType, string str)
    {
        UIPanel panel = arrowsImg.gameObject.AddComponent <UIPanel>();

        panel.sortingOrder = GuideCreator.GuideDepth + 2;
        panel.depth        = GuideCreator.GuideDepth + 2;
        panel = descLab.gameObject.AddComponent <UIPanel>();
        panel.sortingOrder = GuideCreator.GuideDepth + 3;
        panel.depth        = GuideCreator.GuideDepth + 3;
        GuideManager.Instance.creator.OnClearGuide -= DestroySelf;
        GuideManager.Instance.creator.OnClearGuide += DestroySelf;

        float angle = 0f;

        switch (rotateType)
        {
        case GuidePointerRotateType.GPRT_None:
            forward_ = (transform.up).normalized;
            descLab.transform.localPosition = descLab.transform.localPosition = new Vector3(descLab.transform.localPosition.x, 120f, 0f);;
            break;

        case GuidePointerRotateType.GPRT_R45:
            angle    = 45f;
            forward_ = (transform.up + transform.right * -1f).normalized;
            break;

        case GuidePointerRotateType.GPRT_R90:
            angle    = 90f;
            forward_ = (transform.right * -1f).normalized;
            break;

        case GuidePointerRotateType.GPRT_R135:
            angle    = 135f;
            forward_ = (transform.up * -1f + transform.right * -1f).normalized;
            break;

        case GuidePointerRotateType.GPRT_R180:
            angle = 180f;
            descLab.transform.localPosition = new Vector3(descLab.transform.localPosition.x, -120f, 0f);
            forward_ = (transform.up * -1f).normalized;
            break;

        case GuidePointerRotateType.GPRT_R225:
            angle    = 225f;
            forward_ = (transform.up * -1f + transform.right).normalized;
            break;

        case GuidePointerRotateType.GPRT_R270:
            angle    = 270f;
            forward_ = (transform.right).normalized;
            break;

        case GuidePointerRotateType.GPRT_R315:
            angle    = 315f;
            forward_ = (transform.up + transform.right).normalized;
            break;

        default:
            break;
        }
        if (!string.IsNullOrEmpty(str))
        {
            descLab.gameObject.SetActive(true);
            descLab.text = string.Format("[b]{0}[-]", str);
        }
        else
        {
            descLab.gameObject.SetActive(false);
        }
        //transform.Rotate(Vector3.forward, angle);
        arrowsImg.transform.localRotation = Quaternion.Euler(0f, 0f, angle);
        begin_ = true;
    }
示例#12
0
 public void CreateMask(GameObject go, float offsetX, float offsetY, GuidePointerRotateType rotateType, string str, int step, bool mask = false, float alpha = 0.7f)
 {
     IsGuiding_    = true;
     crtGuideType_ = GuideType.GT_UI;
     creator_.Create(go, offsetX, offsetY, rotateType, str, step, alpha, mask);
 }
示例#13
0
    public void CreateInScene(GameObject guideObj, float offsetX, float offsetY, GuidePointerRotateType rotateType, string str, int step, float alpha = 0.7f, bool mask = false)
    {
        if (guideObj == null)
        {
            return;
        }

        if (crtGuideObj_ != null && crtGuideObj_.Equals(guideObj))
        {
            return;
        }

        ClearGuide();
        if (ChatUI.Instance.BigChatOpen())
        {
            ChatUI.Instance.SwitchChatObjActive();
        }
        guideRoot_ = new GameObject("GuideMask");
        if (mask)
        {
            ShowBlack(alpha, step);

            /*UIPanel panel = guideRoot_.AddComponent<UIPanel>();
             * panel.depth = GuideDepth;
             * panel.sortingOrder = GuideDepth;
             * BoxCollider bc = guideRoot_.AddComponent<BoxCollider>();
             * Vector3 size = new Vector3(ApplicationEntry.Instance.UIWidth, ApplicationEntry.Instance.UIHeight, 0);
             * bc.size = size;
             * GameObject maskSub = new GameObject("sub");
             * UITexture texture = maskSub.AddComponent<UITexture>();
             * texture.mainTexture = GlobalInstanceFunction.Instance.maskTex_;
             * texture.color = new Color(0f, 0f, 0f, alpha);
             * texture.MakePixelPerfect();
             * texture.gameObject.AddComponent<BoxCollider>();
             * UIManager.SetButtonEventHandler(texture.gameObject, EnumButtonEvent.OnClick,OnClickBalck , 0, 0);
             *
             *
             * //
             * maskSub.transform.parent = guideRoot_.transform;
             */
        }
        guideRoot_.transform.parent     = ApplicationEntry.Instance.uiRoot.transform;
        guideRoot_.transform.localScale = Vector3.one;
        NGUITools.SetLayer(guideRoot_, LayerMask.NameToLayer("UI"));
        NGUITools.SetChildLayer(guideRoot_.transform, LayerMask.NameToLayer("UI"));

        guideCamera_             = ((GameObject)GameObject.Instantiate(Camera.main.gameObject) as GameObject).GetComponent <Camera>();
        guideCamera_.cullingMask = 1 << LayerMask.NameToLayer("Guide");
        guideCamera_.depth       = 1000;
        guideCamera_.clearFlags  = CameraClearFlags.Nothing;
        guideCamera_.tag         = "GuideCam";
        GameObject.Destroy(guideCamera_.GetComponent <AudioListener>());
        guideCamera_.transform.parent   = guideRoot_.transform;
        guideCamera_.transform.position = Camera.main.gameObject.transform.position;
        guideCamera_.transform.rotation = Camera.main.gameObject.transform.rotation;

        crtGuideObj_ = guideObj;
        sourceLayer_ = crtGuideObj_.layer;
        NGUITools.SetLayer(crtGuideObj_, LayerMask.NameToLayer("Guide"));
        NGUITools.SetChildLayer(crtGuideObj_.transform, LayerMask.NameToLayer("Guide"));
        crtGuideObj_.SetActive(false);
        crtGuideObj_.SetActive(true);

        GameObject pointer = (GameObject)GameObject.Instantiate(pointerPrefab_);

        pointer.transform.parent     = guideRoot_.transform;
        pointer.transform.localScale = Vector3.one;
        pointer.GetComponent <GuidePointer>().BeginInScene(crtGuideObj_, offsetX, offsetY, rotateType, str);

        //处理npc的名字高亮
        if (crtGuideObj_.CompareTag("NPC"))
        {
            TaskNpc tn = crtGuideObj_.GetComponent <TaskNpc>();
            if (tn != null)
            {
                uiClone_ = (GameObject)GameObject.Instantiate(tn.Name.gameObject);
                GameObject uiCloneParent = new GameObject("GuideNpcName");
                uiClone_.transform.parent          = uiCloneParent.transform;
                uiCloneParent.transform.parent     = ApplicationEntry.Instance.uiRoot.transform;
                uiCloneParent.transform.localScale = Vector3.one;
                NGUITools.SetLayer(uiCloneParent, LayerMask.NameToLayer("UI"));
                NGUITools.SetChildLayer(uiCloneParent.transform, LayerMask.NameToLayer("UI"));
                UIPanel guidePanel = uiCloneParent.AddComponent <UIPanel>();
                panelDepth_             = guidePanel.depth;
                panelSortOrder_         = guidePanel.sortingOrder;
                guidePanel.depth        = GuideDepth + 1;
                guidePanel.sortingOrder = GuideDepth + 1;
                uiCloneParent.SetActive(false);
                uiCloneParent.SetActive(true);
            }
        }
    }