Example #1
0
    IEnumerator CreatWingmanIEnuerator(WingmanData data, int cout)
    {
        float      tempTime = 2.0f / cout;
        GameObject wingman  = player.Find("wingman").gameObject;
        int        nowCout  = wingman.transform.childCount;

        if (nowCout >= cout)
        {
            IEnumeratorManager.Instance.StopAllCoroutines();
        }
        yield return(new WaitForSeconds(tempTime));

        AddOneWingman(data);
        TweenPosition m_TP = wingman.transform.GetChild(nowCout - 1).GetComponent <TweenPosition>();

        m_TP.PingPangCoutSet = null;

        nowCout = wingman.transform.childCount;
        GameObject    go = wingman.transform.GetChild(nowCout - 1).gameObject;
        TweenPosition tp = go.GetComponent <TweenPosition>();

        tp.tp               = tp;
        tp.data             = data;
        tp.cout             = cout;
        tp.PingPangCoutSet += CreatWingmanReturn;
    }
Example #2
0
    //恢复 到 指定数目的僚机 (僚机单个离开自机的顺序 按第一个 第二个 第三个。。。才能使用的恢复方法)
    public void CreatWingmanReturnCout(WingmanData data, int cout)
    {
        player = GameObject.FindWithTag("Player").transform;
        if (player == null)
        {
            Debug.LogError("player is null");
            return;
        }
        GameObject wingman = player.Find("wingman").gameObject;
        int        nowCout = wingman.transform.childCount;

        if (nowCout > cout)
        {
            Debug.LogError("cout is error!");
            return;
        }

        if (nowCout == 0)
        {
            AddOneWingman(data);
        }

        nowCout = wingman.transform.childCount;
        GameObject    go = wingman.transform.GetChild(nowCout - 1).gameObject;
        TweenPosition tp = go.GetComponent <TweenPosition>();

        tp.tp               = tp;
        tp.data             = data;
        tp.cout             = cout;
        tp.PingPangCoutSet += CreatWingmanReturn;
    }
Example #3
0
    IEnumerator SetWingmanCout(WingmanData data, int cout)
    {
        player = GameObject.FindWithTag("Player").transform;
        if (player == null)
        {
            Debug.LogError("player is null");
        }
        GameObject parent  = player.transform.Find("wingman").gameObject;
        float      nowCout = parent.transform.childCount;

        for (int i = 0; i < nowCout; i++)
        {
            GameObject child = parent.transform.GetChild(i).gameObject;
            GameObject.Destroy(child);
        }

        float tempTime = 2.0f / cout;

        for (int i = 0; i < cout; i++)
        {
            GameObject wingaman = GameObject.Instantiate(wingmanPrefab);

            wingaman.transform.SetParent(parent.transform, false);
            TweenPosition tp = wingaman.GetComponent <TweenPosition>();
            tp.tp = tp;
            //Sprite sprite = ResourcesManager.Instance.LoadWingmanSprite(data.spriteName);
            tp.PingPangOneStop += PingPangOneStep;
            tp.PingPangTwoStop += PingPangSecondStep;
            WingmanInfo info = wingaman.GetComponent <WingmanInfo>();
            info.SetBullet(data.bulletName);
            info.tempTime = data.tempTime;
            yield return(new WaitForSeconds(tempTime));
        }
    }
Example #4
0
    public WingmanData GetDataById(int id)
    {
        WingmanData data = null;

        if (!WingmanDataDic.TryGetValue(id, out data))
        {
            Debug.LogError("not wingmanData in dic!");
            return(null);
        }
        return(data);
    }
Example #5
0
    void AddOneWingman(WingmanData data)
    {
        player = GameObject.FindWithTag("Player").transform;
        if (player == null)
        {
            Debug.LogError("player is null");
            return;
        }
        GameObject parent   = player.transform.Find("wingman").gameObject;
        GameObject wingaman = GameObject.Instantiate(wingmanPrefab);

        wingaman.transform.SetParent(parent.transform, false);
        TweenPosition tp = wingaman.GetComponent <TweenPosition>();

        tp.tp = tp;
        //Sprite sprite = ResourcesManager.Instance.LoadWingmanSprite(data.spriteName);
        tp.PingPangOneStop += PingPangOneStep;
        tp.PingPangTwoStop += PingPangSecondStep;
        WingmanInfo info = wingaman.GetComponent <WingmanInfo>();

        info.SetBullet(data.bulletName);
        info.tempTime = data.tempTime;
    }
Example #6
0
 private void CreatWingmanReturn(WingmanData data, int cout, TweenPosition tp)
 {
     IEnumeratorManager.Instance.StartCoroutine(CreatWingmanIEnuerator(data, cout));
 }
Example #7
0
 public void ShowWingman(WingmanData data, int cout)
 {
     IEnumeratorManager.Instance.StartCoroutine(SetWingmanCout(data, cout));
 }
Example #8
0
    void CharacterControl()
    {
        if (Input.GetKeyDown(KeyCode.Tab))
        {
            if (state == PlayerState.talk)
            {
                state = PlayerState.attack;
            }

            else
            {
                state = PlayerState.talk;
            }
        }

        //if (Input.GetKeyDown(KeyCode.Escape))
        //{
        //    GUIManager.ShowView("SystemPanel");
        //}
        //if (Input.GetKeyDown(KeyCode.Escape)) {

        //    GUIManager.ShowView("SystemPanel");
        //}

        if (TalkPanel.isSpeak || EventStoryPanel.isEventSpeak || CGPanel.IsCGPlay || BattleCamera.Instance.isUseCamera)
        {
            return;
        }

        //if (BattleCommoUIManager.Instance.IsBlackShade)
        //{
        //    return;
        //}
        if (Input.GetKey(KeyCode.RightArrow))
        {
            if (Input.GetKey(KeyCode.LeftArrow))
            {
                return;
            }
            //this.transform.rotation = Quaternion.Euler(this.transform.rotation.eulerAngles.x, 0, this.transform.rotation.eulerAngles.z);
            this.GetComponent <SpriteRenderer>().flipX = false;
            AnimatorStateInfo stateInfo = m_Animator.GetCurrentAnimatorStateInfo(0);

            if (stateInfo.IsName("Base Layer.loopIdle") || stateInfo.IsName("Base Layer.startIdle") || stateInfo.IsName("Base Layer.idle"))
            {
                m_Animator.SetBool("isWalk", true);
            }

            if (stateInfo.IsName("Base Layer.move"))
            {
                this.transform.Translate(new Vector3(1, 0, 0) * Time.deltaTime * speed, Space.Self);
            }
        }



        if (Input.GetKey(KeyCode.LeftArrow))
        {
            if (Input.GetKey(KeyCode.RightArrow))
            {
                return;
            }
            //this.transform.rotation = Quaternion.Euler(this.transform.rotation.eulerAngles.x, 180, this.transform.rotation.eulerAngles.z);
            this.GetComponent <SpriteRenderer>().flipX = true;
            AnimatorStateInfo stateInfo = m_Animator.GetCurrentAnimatorStateInfo(0);

            if (stateInfo.IsName("Base Layer.loopIdle") || stateInfo.IsName("Base Layer.startIdle") || stateInfo.IsName("Base Layer.idle"))
            {
                m_Animator.SetBool("isWalk", true);
            }

            if (stateInfo.IsName("Base Layer.move"))
            {
                this.transform.Translate(new Vector3(-1, 0, 0) * Time.deltaTime * speed, Space.Self);
            }
        }
        else if (Input.GetKeyUp(KeyCode.RightArrow))
        {
            if (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.RightArrow))
            {
                return;
            }
            m_Animator.SetBool("isWalk", false);
        }

        else if (Input.GetKeyUp(KeyCode.LeftArrow))
        {
            if (Input.GetKey(KeyCode.LeftArrow) || Input.GetKey(KeyCode.RightArrow))
            {
                return;
            }
            m_Animator.SetBool("isWalk", false);
        }


        if (tempTime_Z < Time.time)
        {
            tempTime_Z = Time.time;
            tempTime_X = Time.time;
        }

        if (Input.GetKey(KeyCode.X))
        {
            AnimatorStateInfo stateInfo = m_Animator.GetCurrentAnimatorStateInfo(0);
            if (stateInfo.IsName("Base Layer.Move") || stateInfo.IsName("Base Layer.idle"))
            {
                m_Animator.SetBool("Move", false);
                m_Animator.SetBool("move", false);
                m_Animator.SetBool("Attack", true);
            }
        }



        if (Input.GetKey(KeyCode.Z) && Time.time >= tempTime_Z)
        {
            GameObject    go   = transform.Find("wingman").gameObject;
            GameObject    item = go.transform.GetChild(0).gameObject;
            TweenPosition tp   = item.GetComponent <TweenPosition>();
            tp.enabled = false;
            tp.transform.SetParent(null);
            tp.GetComponent <WingmanInfo>().enabled = false;


            item.AddComponent <Rigidbody>();
            item.GetComponent <Rigidbody>().useGravity = false;
            tp.GetComponent <Rigidbody>().AddForce(new Vector3(1, 0, 0) * 1500);

            tempTime_Z += rate_Z;
        }

        if (Input.GetKeyDown(KeyCode.V))
        {
            WingmanData data = WingmanManager.Instance.GetDataById(0);
            WingmanManager.Instance.CreatWingmanReturnCout(data, 6);
        }
    }