示例#1
0
 private void OnCollisionEnter(Collision collision)
 {
     if (controllerActions && controllerEvents && IsGrabbed())
     {
         collisionForce = controllerEvents.GetVelocity().magnitude *impactMagnifier;
         controllerActions.TriggerHapticPulse((ushort)collisionForce, 0.5f, 0.01f);
     }
     else
     {
         collisionForce = collision.relativeVelocity.magnitude * impactMagnifier;
     }
 }
示例#2
0
 void OnTriggerEnter(Collider collided)
 {
     Debug.Log(collided.name);
     if (collided.tag == "Mallet" && notes.Count > 0)
     {
         float amountOff       = Vector3.Distance(notes[0].transform.position, transform.position);
         float percentAccurate = (0.6f - amountOff) / 0.6f;
         if (percentAccurate > 0)
         {
             Instantiate(particles, transform.position, particles.transform.rotation);
             Debug.Log(percentAccurate);
             if (percentAccurate > 0 && percentAccurate <= 0.3)
             {
                 Instantiate(poor, transform.position, Quaternion.identity);
             }
             else if (percentAccurate > 0.3 && percentAccurate <= 0.6)
             {
                 Instantiate(good, transform.position, Quaternion.identity);
             }
             else if (percentAccurate > 0.6 && percentAccurate <= 0.9)
             {
                 Instantiate(excellent, transform.position, Quaternion.identity);
             }
             else if (percentAccurate > 0.9)
             {
                 Instantiate(fantastic, transform.position, Quaternion.identity);
             }
             else
             {
                 Instantiate(miss, transform.position, Quaternion.identity);
             }
             int multiplier = 1;
             if (notes[0].GetComponent <Note>().type == 2)
             {
                 multiplier = Mathf.RoundToInt(Mathf.Max(leftController.GetVelocity().magnitude, rightController.GetVelocity().magnitude));
                 GameObject multiplierText = Instantiate(multiplierBase, transform.position, Quaternion.identity);
                 multiplierText.GetComponent <TextMesh>().text = multiplier + "x";
                 Debug.Log(multiplier);
             }
             player.Score(Mathf.FloorToInt(Mathf.Max(0, 50f - amountOff)) * multiplier);
             Destroy(notes[0]);
             notes.RemoveAt(0);
         }
     }
 }
示例#3
0
    private void ThrowBomb()
    {
        //更新炸弹数量
        AmmoUI.Instance.UpdateBombNumber();

        GrabedObject.transform.parent = null;
        GrabedObject.AddComponent <Rigidbody>();
        Hand_animator.SetBool("Catch", false);
        this_grabedObjectType = GrabedObjectType.None;

        Vector3 velocity        = controllerEvents.GetVelocity();
        Vector3 angularVelocity = controllerEvents.GetAngularVelocity();

        GrabedObject.GetComponent <Rigidbody>().velocity        = transform.parent.parent.TransformDirection(velocity) * m_ThrowMulitiple;
        GrabedObject.GetComponent <Rigidbody>().angularVelocity = transform.parent.parent.TransformDirection(angularVelocity);
        GrabedObject.GetComponent <Bomb>().IsThrow = true;
        GrabedObject = null;
        m_IsUseBomb  = false;

        //UsePistol();
    }