Files
AsanoRema ffa1064063 Squashed commit of the following:
commit 428243f4a6
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Sat Aug 29 13:43:13 2026 +0300

    Squashed commit of the following:

    commit 68e78fa464
    Author: AsanoRema <asanorema2036@gmail.com>
    Date:   Sat Aug 29 13:41:49 2026 +0300

        Updated .gitignore

commit 9f87122a34
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Sat Aug 29 13:34:57 2026 +0300

    Added Dohya

commit f6a7547e84
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Fri Aug 21 17:59:13 2026 +0300

    Fixed

commit b98901c366
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Tue Aug 18 17:37:22 2026 +0300

    Added new particle Package

commit bb2f4a3b16
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Tue Aug 18 17:17:48 2026 +0300

    Map mehanic ready to multiplayer

commit c01ff800f6
Author: AsanoRema <asanorema2036@gmail.com>
Date:   Tue Aug 18 16:16:19 2026 +0300

    Squashed commit of the following:

    commit 173bbb165c
    Author: henjkey <henjkey@gmail.com>
    Date:   Fri Aug 14 18:51:23 2026 +0500

        Mappp

    commit d559ab338a
    Author: henjkey <henjkey@gmail.com>
    Date:   Thu Aug 13 18:42:41 2026 +0500

        Map

        Controller
        Coordinates
        Target System
        Crosshair System
        Radar System
2026-08-29 13:45:55 +03:00

78 lines
1.8 KiB
C#

using UnityEngine;
using System.Collections;
/**
* Handles the bullet hole decals:
* - Sets a random frame
* - Fades the material according to the defined lifetime
* - Optionally rotates the decal
*
* (c) 2015, Jean Moreno
**/
[RequireComponent(typeof(MeshFilter))]
public class WFX_BulletHoleDecal : MonoBehaviour
{
static private Vector2[] quadUVs = new Vector2[]{new Vector2(0,0), new Vector2(0,1), new Vector2(1,0), new Vector2(1,1)};
public float lifetime = 10f;
public float fadeoutpercent = 80;
public Vector2 frames;
public bool randomRotation = false;
public bool deactivate = false;
private float life;
private float fadeout;
private Color color;
private float orgAlpha;
void Awake()
{
color = this.GetComponent<Renderer>().material.GetColor("_TintColor");
orgAlpha = color.a;
}
void OnEnable()
{
//Random UVs
int random = Random.Range(0, (int)(frames.x*frames.y));
int fx = (int)(random%frames.x);
int fy = (int)(random/frames.y);
//Set new UVs
Vector2[] meshUvs = new Vector2[4];
for(int i = 0; i < 4; i++)
{
meshUvs[i].x = (quadUVs[i].x + fx) * (1.0f/frames.x);
meshUvs[i].y = (quadUVs[i].y + fy) * (1.0f/frames.y);
}
this.GetComponent<MeshFilter>().mesh.uv = meshUvs;
//Random rotate
if(randomRotation)
this.transform.Rotate(0f,0f,Random.Range(0f,360f), Space.Self);
//Start lifetime coroutine
life = lifetime;
fadeout = life * (fadeoutpercent/100f);
color.a = orgAlpha;
this.GetComponent<Renderer>().material.SetColor("_TintColor", color);
StopAllCoroutines();
StartCoroutine("holeUpdate");
}
IEnumerator holeUpdate()
{
while(life > 0f)
{
life -= Time.deltaTime;
if(life <= fadeout)
{
color.a = Mathf.Lerp(0f, orgAlpha, life/fadeout);
this.GetComponent<Renderer>().material.SetColor("_TintColor", color);
}
yield return null;
}
}
}