Пример #1
0
    void Shoot()
    {
        muzzleflash.Play();
        RaycastHit hit;

        device = SteamVR_Controller.Input((int)obj.index);
        device.TriggerHapticPulse(3000);

        if (Physics.Raycast(muzzleTransform.position, muzzleTransform.forward, out hit, range))
        {
            ControlSpider control = hit.transform.GetComponent <ControlSpider>();
            if (control != null)
            {
                control.TakeDamage(damage);
            }

            if (hit.rigidbody != null)
            {
                hit.rigidbody.AddForce(-hit.normal * impactForce);
            }
            if (Vector3.Distance(hit.point, gameObject.transform.position) > 1f)
            {
                GameObject obj = Instantiate(impactEffect, hit.point, Quaternion.LookRotation(hit.normal));
                Destroy(obj, 1f);
            }
        }
    }
    private void FixedUpdate()
    {
        MoveSpiderLegs.DoFixedUpdate();
        ControlSpider.DoFixedUpdate();
        _fixJoints.DoFixedUpdate();

        for (int i = 0; i < _legTargets.Length; i++)
        {
            _legTargets[i].DoFixedUpdate();
        }

        for (int i = 0; i < _inverseKinematics.Length; i++)
        {
            _inverseKinematics[i].DoInverseKinematics();
        }
    }