示例#1
0
 // Update is called once per frame
 //public bool hasInput = false;
 private void FixedUpdate()
 {
     trueAcceleration = acceleration / Time.fixedDeltaTime;
     //hasInput = false;
     if (Input.GetAxis(leftXAxis) > deadZone)
     {
         //hasInput = true;
         //rb.AddForce(Vector3.right * acceleration);
         rb.velocity = rb.velocity + trueAcceleration * Vector3.right;
         Debug.Log("Right");
     }
     if (Input.GetAxis(leftXAxis) < -deadZone)
     {
         //hasInput = true;
         //rb.AddForce(Vector3.left * acceleration);
         rb.velocity = rb.velocity + trueAcceleration * Vector3.left;
         Debug.Log("Left");
     }
     if (Input.GetAxis(leftYAxis) > deadZone)
     {
         //hasInput = true;
         //rb.AddForce(Vector3.forward * acceleration);
         rb.velocity = rb.velocity + trueAcceleration * Vector3.forward;
         Debug.Log("Up");
     }
     if (Input.GetAxis(leftYAxis) < -deadZone)
     {
         //hasInput = true;
         //rb.AddForce(Vector3.back * acceleration);
         rb.velocity = rb.velocity + trueAcceleration * Vector3.back;
         Debug.Log("Down");
     }
     if (Input.GetAxis(fire1) > 0f)
     {
         if (Time.time - lastBumpTime > bumpCoolDown)
         {
             bump.TriggerBump();
             lastBumpTime = Time.time;
         }
     }
     rb.velocity = Vector3.ClampMagnitude(rb.velocity, maxVelocity);
     //if (!hasInput)
     //{
     //    rb.AddForce(Vector3.zero, ForceMode.VelocityChange);
     //}
 }
示例#2
0
    // Update is called once per frame
    private void FixedUpdate()
    {
        Vector3 orientation = Vector3.zero;

        if (isStunned && stunEndTime <= Time.time)
        {
            isStunned = false;
        }
        if (isStunned)
        {
            return;
        }
        Vector3 force = Vector3.zero;

        if (Input.GetAxis(leftXAxis) > deadZone)
        {
            force += Vector3.right * acceleration;
        }
        if (Input.GetAxis(leftXAxis) < -deadZone)
        {
            force += Vector3.left * acceleration;
        }
        if (Input.GetAxis(leftYAxis) > deadZone)
        {
            force += Vector3.forward * acceleration;
        }
        if (Input.GetAxis(leftYAxis) < -deadZone)
        {
            force += Vector3.back * acceleration;
        }
        orientation = new Vector3(Input.GetAxisRaw(leftXAxis), 0, Input.GetAxisRaw(leftYAxis));
        if (orientation.sqrMagnitude > 0.3f)
        {
            transform.forward = orientation;
        }
        if (Input.GetButtonDown(fire1) && !bumpLock)
        {
            bumpaxis = Input.GetAxis(fire1);
            bumpLock = true;

            if (Time.time - lastBumpTime > bumpCoolDown)
            {
                lastBumpTime = Time.time;
                bump.TriggerBump();
                GetComponent <AudioSource>().clip = boop;
                GetComponent <AudioSource>().Play();
                cooldown1.GetComponent <MeshRenderer>().materials[1].SetColor("_EmissionColor", Color.black);
                cooldown2.GetComponent <MeshRenderer>().materials[1].SetColor("_EmissionColor", Color.black);
            }
        }
        if (Input.GetButtonUp(fire1) && bumpLock)
        {
            bumpLock = false;
        }
        if ((Time.time - lastBumpTime) < bumpCoolDown)
        {
            Color transitionColor = Color.black + originalColor * (Time.time - lastBumpTime) / bumpCoolDown;
            cooldown1.GetComponent <MeshRenderer>().materials[1].SetColor("_EmissionColor", transitionColor);
            cooldown2.GetComponent <MeshRenderer>().materials[1].SetColor("_EmissionColor", transitionColor);
        }



        force += Vector3.ClampMagnitude(force, acceleration);
        rb.AddForce(force);
        rb.velocity = Vector3.ClampMagnitude(rb.velocity, maxVelocity);
        //if (!hasInput)
        //{
        //    rb.AddForce(Vector3.zero, ForceMode.VelocityChange);
        //}
    }