75 lines
1.7 KiB
C#
Raw Permalink Normal View History

2025-05-18 01:04:31 +08:00
using UnityEngine;
public class Bomb_b11 : MonoBehaviour
{
public float uvspeed = 1f;
public float hitrate = 0.2f;
public float startdelay = 0.1f;
public float finishdelay = 3f;
private float delay;
private Material mymaterial;
private Collider mycollider;
private Vector2 offset;
private Transform mytransform;
private float scalefactor = 12f;
#pragma warning disable CS0649 // 从未对字段“Bomb_b11.particleoff”赋值字段将一直保持其默认值 false
private bool particleoff;
#pragma warning restore CS0649 // 从未对字段“Bomb_b11.particleoff”赋值字段将一直保持其默认值 false
private void Awake()
{
mytransform = base.transform;
mymaterial = base.GetComponent<Renderer>().sharedMaterial;
mycollider = base.GetComponent<Collider>();
}
private void OnEnable()
{
offset = Vector2.zero;
mymaterial.mainTextureOffset = Vector2.zero;
InvokeRepeating("DanceHit", startdelay, hitrate);
mytransform.localScale = Vector3.one * 2f;
delay = 0f;
scalefactor = 12f;
//mytransform.GetChild(0).particleEmitter().emit = true;
}
private void DanceHit()
{
mycollider.enabled = false;
mycollider.enabled = true;
}
private void Update()
{
offset += Vector2.up * Time.deltaTime * uvspeed;
if (delay > finishdelay)
{
CancelInvoke();
mycollider.enabled = false;
mytransform.position = Vector3.one * 38f;
base.gameObject.SetActive(false);
delay = 0f;
return;
}
scalefactor -= Time.deltaTime * 10f;
delay += Time.deltaTime;
mymaterial.mainTextureOffset = offset;
mytransform.localScale += Vector3.one * Time.deltaTime * scalefactor;
if (!particleoff && delay > 0.5f)
{
mytransform.GetChild(0).particleEmitter().emit = false;
}
}
}