Esempio n. 1
0
    // Update is called once per frame
    void Update()
    {
        switch (state)
        {
        case State.Firing:
            transform.position = Vector3.MoveTowards(transform.position, targetPos, speed * Time.deltaTime * 0.8f);
            //speed += -Time.deltaTime * 10.0f;
            break;

        case State.Landing:
            if (CanPushFlg)
            {
                ItemObj.transform.parent = this.gameObject.transform;
                state = State.Return;
            }
            else
            {
                state = State.Release;
            }
            break;

        //if (ItemTex == "Player")
        //{
        //    ItemObj.transform.parent = this.gameObject.transform;
        //    state = State.Return;
        //}
        //else if (ItemTex == "Item")
        //{
        //    state = State.Release;
        //}
        //else if (ItemTex == "Same")
        //{
        //    state = State.Release;
        //}
        //break;
        case State.Return:
            transform.localPosition = Vector3.MoveTowards(transform.localPosition, InitPos, speed * Time.deltaTime * 0.8f);
            if (transform.localPosition == InitPos)
            {
                if (!this.gameObject.GetComponent <AudioSource>().isPlaying&& !SoundFlg)
                {
                    this.gameObject.GetComponent <AudioSource>().PlayOneShot(BackArmSe);
                    SoundFlg = true;
                }
                speed = 30.0f;
                PlayerCamera.GetComponent <Test_PlayerCamera>().anim.SetBool("Shot", false);
                PlayerCamera.GetComponent <Test_PlayerCamera>().anim.speed = 1;
                if (ItemObj != null)
                {
                    PIManager.PushItem(ItemObj.tag);
                }
                Destroy(ItemObj);
                player.GetComponent <Test_PlayerContllor>().CheckFlg = false;
                if (!this.gameObject.GetComponent <AudioSource>().isPlaying&& SoundFlg)
                {
                    SoundFlg = false;
                    state    = State.Normal;
                }
            }
            break;

        case State.Pull:
            player.transform.position = Vector3.MoveTowards(player.transform.position, transform.position, speed * Time.deltaTime * 0.8f);
            float dis = Vector3.Distance(transform.position, player.transform.position);
            if (dis < 1.405f)
            {
                PlayerCamera.GetComponent <Test_PlayerCamera>().anim.SetBool("Shot", false);
                PlayerCamera.GetComponent <Test_PlayerCamera>().anim.speed = 1;
                transform.parent        = GameObject.Find("Player").transform;
                transform.localPosition = InitPos;
                speed = 30.0f;
                player.GetComponent <Test_PlayerContllor>().CheckFlg = false;
                state = State.Normal;
            }
            Debug.Log(dis);
            break;

        case State.Release:
            transform.localPosition = Vector3.MoveTowards(transform.localPosition, InitPos, speed * Time.deltaTime * 0.8f);
            if (transform.localPosition == InitPos)
            {
                if (!this.gameObject.GetComponent <AudioSource>().isPlaying&& !SoundFlg)
                {
                    this.gameObject.GetComponent <AudioSource>().PlayOneShot(BackArmSe);
                    SoundFlg = true;
                }
                speed = 30.0f;
                PlayerCamera.GetComponent <Test_PlayerCamera>().anim.SetBool("Shot", false);
                PlayerCamera.GetComponent <Test_PlayerCamera>().anim.speed = 1;
                player.GetComponent <Test_PlayerContllor>().CheckFlg       = false;
                if (!this.gameObject.GetComponent <AudioSource>().isPlaying&& SoundFlg)
                {
                    SoundFlg = false;
                    state    = State.Normal;
                }
            }
            break;

        case State.Normal:
            transform.localPosition = InitPos;
            transform.localRotation = InitRot;
            break;
        }
        Debug.Log(state);
    }