75 lines
1.7 KiB
C#
75 lines
1.7 KiB
C#
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;
|
||
}
|
||
}
|
||
}
|