コード例 #1
0
ファイル: Action.cs プロジェクト: nryota/uProcessing
    public void update()
    {
        float v = g.inputX;

        obj.anim.SetFloat("Speed", v);
        Vector3 accel = new Vector3(0, 0, v);

        accel = obj.transform.TransformDirection(accel);
        if (v > 0.1f)
        {
            accel *= forwardSpeed;
        }
        else if (v < -0.1f)
        {
            accel *= backwardSpeed;
        }

        bool isJump  = obj.isAnimState("Base Layer.Jump");
        bool isSlide = obj.isAnimState("Base Layer.Slide");

        if (!isJump && !isSlide)
        {
            obj.anim.SetBool("Jump", false);
            obj.anim.SetBool("Slide", false);
            if (g.isButtonDown("Jump") || g.isKeyDown(KeyCode.UpArrow))
            {
                if (!obj.animator.IsInTransition(0) && v >= 0.0f)
                {
                    obj.rigidBody.AddForce(Vector3.up * jumpPower, ForceMode.VelocityChange);
                    obj.anim.SetBool("Jump", true);
                }
            }
            else if (g.isButtonDown("Fire1") || g.isKeyDown(KeyCode.DownArrow))
            {
                if (!obj.animator.IsInTransition(0))
                {
                    accel *= slidePower;
                    obj.anim.SetBool("Slide", true);
                }
            }
        }

        velocity = Vector3.Lerp(velocity, accel, 0.1f);
        obj.pos += velocity * Time.deltaTime;
        if (obj.pos.y < 0.0f)
        {
            obj.pos = new Vector3(obj.pos.x, 0.0f, obj.pos.z);
        }

        //float h = g.inputY;
        //obj.anim.SetFloat("Direction", h);
        //obj.transform.Rotate(0, h * rotateSpeed, 0);
    }