Files
TEngine/Assets/GameScripts/HotFix/GameLogic/Demo/Actor/EntityBullet.cs
ALEXTANG 7bf081269c Demo
Demo
2023-05-13 11:57:11 +08:00

56 lines
1.0 KiB
C#

using UnityEngine;
using UniFramework.Pooling;
public class EntityBullet : MonoBehaviour
{
public float MoveSpeed = 20f;
public float DelayDestroyTime = 5f;
private SpawnHandle _handle;
private Rigidbody _rigidbody;
public void InitEntity(SpawnHandle handle)
{
_handle = handle;
_rigidbody.velocity = this.transform.forward * MoveSpeed;
}
void Awake()
{
_rigidbody = this.transform.GetComponent<Rigidbody>();
}
void OnTriggerEnter(Collider other)
{
var name = other.gameObject.name;
if (name.StartsWith("Boundary"))
return;
var goName = this.gameObject.name;
if (goName.StartsWith("enemy_bullet"))
{
if (name.StartsWith("enemy") == false)
{
_handle.Restore();
_handle = null;
}
}
if (goName.StartsWith("player_bullet"))
{
if (name.StartsWith("player") == false)
{
_handle.Restore();
_handle = null;
}
}
}
void OnTriggerExit(Collider other)
{
var name = other.gameObject.name;
if (name.StartsWith("Boundary"))
{
_handle.Restore();
_handle = null;
}
}
}