0
点赞
收藏
分享

微信扫一扫

【Unity,C#】哨兵射线触发器模板代码


哨兵射线触发器模板代码


​效果​

【Unity,C#】哨兵射线触发器模板代码_游戏引擎

​配置​

【Unity,C#】哨兵射线触发器模板代码_unity_02

​代码​

public class Observer : MonoBehaviour
{
public Transform player;
public GameEnding gameEnding;

private bool _isPlayerInRange = false;

private void OnTriggerEnter(Collider other)
{
if (other.transform == player)
{
_isPlayerInRange = true;
}
}

private void OnTriggerExit(Collider other)
{
if (other.transform == player)
{
_isPlayerInRange = false;
}
}

private void Update()
{
if (_isPlayerInRange)
{
//创建投射射线用到的方向矢量
Vector3 dirction = player.position - transform.position + Vector3.up;
//创建射线
Ray ray = new Ray(transform.position, dirction);

//射线集中对象,包含射线的碰撞信息
RaycastHit raycastHit;

//射线如果碰到物体
if (Physics.Raycast(ray, out raycastHit))
{
//如果碰到的是玩家
if (raycastHit.collider.transform == player)
{
gameEnding.fail();
}
}
}
}
}


举报

相关推荐

0 条评论