Esempio n. 1
0
    private void RightFootStep()
    {
        RaycastHit hit;
        Ray        ray    = new Ray(i_rightFoot.position, -i_rightFoot.up);
        bool       wasHit = Physics.Raycast(ray, out hit);

        if (wasHit)
        {
            Mesh decalMesh = DecalCreator.CreateDecalMesh(i_decalTypeRight, hit.point, -hit.normal, hit.collider.gameObject, i_rightFoot.forward);
            DecalCreator.CreateDynamicDecal(decalMesh, hit.collider.gameObject, i_decalTypeRight, null);
        }
        _right = false;
    }
Esempio n. 2
0
    ///Shoot
    private void Fire()
    {
        if (Input.GetMouseButton(0) && _allowFire)
        {
            //Audio shoot
            //this.audio.PlayOneShot(this.audio.clip);

            RaycastHit hit;
            Ray        ray    = Camera.main.ViewportPointToRay(new Vector3(0.5F, 0.5F, 0));
            bool       wasHit = Physics.Raycast(ray, out hit);
            if (wasHit)
            {
                //Profiler.BeginSample("BURN DECAL ON TORUS");
                //Burn decal
                Mesh decalMesh = DecalCreator.CreateDecalMesh(i_decalType, hit.point, -hit.normal, hit.collider.gameObject);
                //Create Decal Object
                DecalCreator.CreateDynamicDecal(decalMesh, hit.collider.gameObject, i_decalType);
                //Profiler.EndSample();

                //If we hit character
                if (hit.collider.transform.root.name == "Enemy")
                {
                    Blood(hit, ray.direction);
                    hit.collider.transform.root.SendMessage("ApplyDamage", SendMessageOptions.DontRequireReceiver);
                    SkinnedMeshRenderer smr = hit.collider.transform.root.GetComponentInChildren <SkinnedMeshRenderer>();
                    SkinDecal(hit, smr.gameObject);
                }
                else
                {
                    Dust(hit);
                }
            }

            StartCoroutine(Delay());
        }
    }