예제 #1
0
        public override void UseButtonDown()
        {
            base.UseButtonDown();

            GameObject bullet = GameObject.Instantiate(BulletPrefab);

            bullet.transform.position = FirePoint.position;
            bullet.transform.forward  = FirePoint.forward;

            bullet.GetComponent <Rigidbody> ().AddRelativeForce(BulletForce);

            AttachedHand.TriggerHapticPulse(500);
        }
예제 #2
0
    public override void UseButtonDown()
    {
        base.UseButtonDown();

        GameObject bullet = GameObject.Instantiate(bulletPrefab);

        bullet.transform.position = firePoint.position;
        bullet.transform.rotation = firePoint.rotation;

        bullet.GetComponent <Rigidbody>().AddRelativeForce(bulletForce);

        AttachedHand.TriggerHapticPulse(100, Valve.VR.EVRButtonId.k_EButton_Axis0);
    }
예제 #3
0
        void OnCollisionEnter(Collision collision)
        {
            if (IsAttached == true)
            {
                foreach (ContactPoint contact in collision.contacts)
                {
                    //haptic rumble
                    ushort uHapticStrength = (ushort)(HapticStrengthMultiplier * lastMagnitude);
                    if (uHapticStrength <= 3000)
                    {
                        AttachedHand.TriggerHapticPulse(uHapticStrength);
                    }
                    else
                    {
                        AttachedHand.LongHapticPulse(1);
                    }

                    //on hit audio picker
                    if (collision.gameObject.name == "Men" || collision.gameObject.name == "KoteR" || collision.gameObject.name == "KoteL")
                    {
                        //Debug.Log("hit " + collision.gameObject.name);
                        if (!hitAudio.isPlaying && lastMagnitude > 0.14)
                        {
                            hitAudio.clip   = hitMen[Random.Range(0, 3)];
                            hitAudio.volume = 1;
                            hitAudio.Play();
                        }
                        else if (!hitAudio.isPlaying && lastMagnitude > 0.08)
                        {
                            hitAudio.clip   = hitMen[Random.Range(4, 7)];
                            hitAudio.volume = (lastMagnitude / 0.14F);
                            hitAudio.Play();
                        }
                        else if (!hitAudio.isPlaying && lastMagnitude > 0.01)
                        {
                            hitAudio.clip   = hitMen[Random.Range(8, 13)];
                            hitAudio.volume = (lastMagnitude / 0.08F);
                            hitAudio.Play();
                        }
                    }
                    else
                    {
                        if (!hitAudio.isPlaying && lastMagnitude > 0.1)
                        {
                            hitAudio.clip   = hitBamboo[Random.Range(0, 6)];
                            hitAudio.volume = 1;
                            hitAudio.Play();
                        }
                        else if (!hitAudio.isPlaying && lastMagnitude > 0.03)
                        {
                            hitAudio.clip   = hitBamboo[Random.Range(7, 9)];
                            hitAudio.volume = (lastMagnitude / 0.1F);
                            hitAudio.Play();
                        }
                        else if (!hitAudio.isPlaying && lastMagnitude > 0.005)
                        {
                            hitAudio.clip   = hitBamboo[Random.Range(10, 12)];
                            hitAudio.volume = (lastMagnitude / 0.03F);
                            hitAudio.Play();
                        }
                        else if (!hitAudio.isPlaying && lastMagnitude > 0.001)
                        {
                            hitAudio.clip   = hitBamboo[13];
                            hitAudio.volume = (lastMagnitude / 0.005F);
                            hitAudio.Play();
                        }
                    }
                }
            }
        }