コード例 #1
0
        void FixedUpdate()
        {
            float moveHorizontal = MinigameInputHelper.GetHorizontalAxis(player_num);
            float moveVertical   = MinigameInputHelper.GetVerticalAxis(player_num);

            Vector3 movement = Vector3.Normalize(new Vector3(moveHorizontal, 0.0f, moveVertical));

            anim.SetFloat("Speed", 0);


            //when tongue is not moving, you can run and jump freely
            // if (!tongue.moving)
            {
                tonguePos = transform.position;

                if (movement.magnitude > 0.1)
                {
                    rb.MovePosition(transform.position + movement * horizontalSpeed);

                    Quaternion q = Quaternion.LookRotation(-1 * movement, Vector3.up);
                    if (!anim.GetCurrentAnimatorStateInfo(0).IsName("Ghost_Armature|TongueOut"))
                    {
                        rb.MoveRotation(q);
                    }
                    facingDirection = Vector3.Normalize(movement);
                    anim.SetFloat("Speed", moveHorizontal * moveHorizontal + moveVertical * moveVertical);
                }
                if (grounded && MinigameInputHelper.IsButton1Held(player_num))
                {
                    anim.SetBool("Grounded", false);
                    anim.SetTrigger("Jump");
                    audio.PlayOneShot(jumpingSound, 1.0F);
                    grounded = false;
                    rb.AddForce(Vector3.up * jumpPower);
                }
                else
                {
                    anim.ResetTrigger("Jump");
                }
                if (!grounded && rb.transform.position.y < .01)
                {
                    grounded = true;
                    anim.SetBool("Grounded", true);
                }
                if (!grounded)
                {
                    rb.AddForce(Vector3.down * fallPower);
                }
                if (MinigameInputHelper.IsButton2Held(player_num) && !tongue.moving)
                {
                    anim.SetTrigger("Tongue");
                    audio.PlayOneShot(tongueSound, 1.0F);

                    tongue.setDestination(transform.position + facingDirection * tongueDistance);
                }
                else
                {
                    anim.ResetTrigger("Tongue");
                }
            }

            //       //move fruits being eaten closer to the mouth
            //       foreach(GameObject fruit in eating)
            //       {
            //           if (fruit != null)
            //           {
            //               Vector3 newPos = Vector3.Lerp(fruit.transform.position, mouth.position, eatingSpeed * Time.deltaTime);
            //               fruit.transform.position = new Vector3(newPos.x, fruit.transform.position.y, newPos.z);
            //           }
            //       }
        }