108 lines
2.4 KiB
C#
108 lines
2.4 KiB
C#
![]() |
// ***********************************************************************
|
|||
|
// 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);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|