2025-05-18 01:04:31 +08:00

108 lines
2.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// ***********************************************************************
// Assembly : Game
// Author : Kimch
// Created : 2020-09-02
// Description :
// Last Modified By :
// Last Modified On :
// ***********************************************************************
// <copyright file= "Ef_fixed" company="Kimch"></copyright>
// <summary></summary>
// ***********************************************************************
using UnityEngine;
namespace G
{
/// <summary>
///
/// </summary>
public class Ef_fixed : Ef_base
{
public float m_spaceTrigger;
public bool m_followMe;
private ParticleSystem m_emitter;
#pragma warning disable CS0414 // 字段“Ef_fixed.m_spaceCount”已被赋值但从未使用过它的值
private float m_spaceCount;
#pragma warning restore CS0414 // 字段“Ef_fixed.m_spaceCount”已被赋值但从未使用过它的值
private bool m_onlyOne;
private new void Awake()
{
base.Awake();
m_transform = base.transform;
m_collider = base.GetComponent<Collider>();
m_emitter = base.gameObject.GetComponentInChildren<ParticleSystem>();
}
private void Start()
{
}
private void OnEnable()
{
if ((bool)m_emitter)
{
m_emitter.Play();
}
m_spaceCount = 0f;
m_delay = 0f;
m_localScale = m_transform.localScale;
SetCollider(false);
m_onlyOne = false;
if (m_spaceTrigger > 0f)
{
InvokeRepeating(nameof(SetSpaceCollider_CB), m_startTrigger, m_spaceTrigger);
InvokeRepeating(nameof(SetSpaceCollider2_CB), m_startTrigger + 0.05f, m_spaceTrigger + 0.05f);
}
}
private void OnDisable()
{
CancelInvoke(nameof(SetSpaceCollider_CB));
}
private void Update()
{
m_delay += Time.deltaTime;
if (m_followMe)
{
Ef_base.GetPosByType(m_transform, base.m_user, m_posType, m_rotationWithTarget);
}
m_transform.localScale = m_localScale;
if (m_endDelay != -1f && m_delay >= m_endDelay)
{
Destroy(base.gameObject);
}
else if (m_delay >= m_endTrigger && m_endTrigger != -1f)
{
SetCollider(false);
}
else if (m_spaceTrigger == 0f && m_collider && m_delay >= m_startTrigger && !m_onlyOne)
{
SetCollider(true);
m_onlyOne = true;
}
}
private void SetSpaceCollider_CB()
{
if (m_collider)
{
SetCollider(true);
}
}
private void SetSpaceCollider2_CB()
{
if (m_collider)
{
SetCollider(false);
}
}
}
}