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());
        }
    }
Esempio n. 3
0
    private void CreateMeshList(Plane[] planes, GameObject g)
    {
        if (!g)
        {
            return;
        }

        if ((g.GetComponent <Renderer>() && GeometryUtility.TestPlanesAABB(planes, g.GetComponent <Renderer>().bounds)) || g.GetComponent <Terrain>() != null)
        {
            Mesh mesh = DecalCreator.CreateDecalMesh(_decalType, _decalType.transform.position, _decalType.transform.forward, g, Vector3.zero);
            if (mesh)
            {
                mesh.name = "Temp decal";
                if (mesh.vertices.Length > 0)
                {
                    _newMeshes.Add(mesh);
                }
                else
                {
                    DestroyImmediate(mesh);
                }
            }
        }
    }
Esempio n. 4
0
    ///Skin decal
    private void SkinDecal(RaycastHit hit, GameObject objWithSkin)
    {
        Mesh decalMesh = DecalCreator.CreateDecalMesh(i_blood, hit.point, -hit.normal, objWithSkin, Vector3.zero);

        DecalCreator.CreateDynamicSkinnedDecal(decalMesh, objWithSkin, i_blood, null);
    }