118 lines
2.4 KiB
C#
118 lines
2.4 KiB
C#
![]() |
using UnityEngine;
|
|||
|
namespace G
|
|||
|
{
|
|||
|
public class RandomItem : MonoBehaviour
|
|||
|
{
|
|||
|
public Transform[] fxs;
|
|||
|
|
|||
|
public Transform[] fxs_b;
|
|||
|
|
|||
|
public float m_spaceTime;
|
|||
|
|
|||
|
public int m_hpVal = 10;
|
|||
|
|
|||
|
public int m_spVal = 30;
|
|||
|
|
|||
|
private int m_curIdx = -1;
|
|||
|
|
|||
|
private Transform[] m_fxs = new Transform[4];
|
|||
|
|
|||
|
private SphereCollider m_collider;
|
|||
|
|
|||
|
private void Awake()
|
|||
|
{
|
|||
|
m_collider = GetComponent<SphereCollider>();
|
|||
|
for (int i = 0; i < fxs.Length; i++)
|
|||
|
{
|
|||
|
m_fxs[i] = (Object.Instantiate(fxs[i], this.transform.position, Quaternion.identity, this.transform) as Transform);
|
|||
|
m_fxs[i].localPosition = new Vector3(0f, 0.01f, 0f);
|
|||
|
m_fxs[i].gameObject.SetActive(false);
|
|||
|
}
|
|||
|
m_curIdx = -1;
|
|||
|
RandItem_CB();
|
|||
|
m_collider.enabled = false;
|
|||
|
|
|||
|
//SetFxActive(m_curIdx);
|
|||
|
//InvokeRepeating(nameof(RandItem_CB), 1.5f, 1.5f);
|
|||
|
Invoke(nameof(SetCollider), 1f);
|
|||
|
}
|
|||
|
|
|||
|
private void OnDestroy()
|
|||
|
{
|
|||
|
for (int i = 0; i < fxs.Length; i++)
|
|||
|
{
|
|||
|
Object.Destroy(m_fxs[i].gameObject);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
private void SetCollider()
|
|||
|
{
|
|||
|
m_collider.enabled = true;
|
|||
|
}
|
|||
|
|
|||
|
private void RandItem_CB()
|
|||
|
{
|
|||
|
if (m_curIdx == 3)
|
|||
|
{
|
|||
|
m_curIdx = -1;
|
|||
|
}
|
|||
|
m_curIdx++;
|
|||
|
m_curIdx = Random.Range(0, 4);
|
|||
|
SetFxActive(m_curIdx);
|
|||
|
}
|
|||
|
|
|||
|
private void SetFxActive(int idx)
|
|||
|
{
|
|||
|
for (int i = 0; i < m_fxs.Length; i++)
|
|||
|
{
|
|||
|
m_fxs[i].gameObject.SetActive(false);
|
|||
|
}
|
|||
|
m_fxs[idx].gameObject.SetActive(true);
|
|||
|
}
|
|||
|
|
|||
|
private void OnTriggerEnter(Collider other)
|
|||
|
{
|
|||
|
if (other.gameObject.layer != GameLayer.AllyLayer)
|
|||
|
{
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
m_collider.enabled = false;
|
|||
|
Vector3 pos = default(Vector3);
|
|||
|
//pos = component.GetCurPos();
|
|||
|
//pos.y = component.GetModHeight();
|
|||
|
string prefabName = string.Empty;
|
|||
|
switch (m_curIdx)
|
|||
|
{
|
|||
|
case 0:
|
|||
|
{
|
|||
|
prefabName = "green";
|
|||
|
GameLevel.Instance.AddBuff(prefabName, GlobalVar.BuffAddition);
|
|||
|
break;
|
|||
|
}
|
|||
|
case 1:
|
|||
|
{
|
|||
|
prefabName = "red";
|
|||
|
GameLevel.Instance.AddBuff(prefabName, GlobalVar.BuffAddition);
|
|||
|
break;
|
|||
|
}
|
|||
|
case 2:
|
|||
|
{
|
|||
|
prefabName = "yellow";
|
|||
|
GameLevel.Instance.AddBuff(prefabName, GlobalVar.BuffAddition);
|
|||
|
break;
|
|||
|
}
|
|||
|
case 3:
|
|||
|
{
|
|||
|
prefabName = "blue";
|
|||
|
GameLevel.Instance.AddBuff(prefabName, GlobalVar.BuffAddition);
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
var fx = Object.Instantiate(fxs_b[m_curIdx], this.transform.position, Quaternion.identity);
|
|||
|
Destroy(fx.gameObject, 1f);
|
|||
|
Object.Destroy(this.gameObject);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|