控制Boos缓慢的转向主角
大家好! 今天来谈一下Boss攻击主角时关于Boss的转向问题,大家都知道,一般副本里面的小怪的朝向都是时时朝向主角的,不会延迟的朝向主角。而Boos就不一样了,一般Boss体型较大,转向主角是需要一定的转向时间的,而主角就可以在Boss转向的这个缓冲时间进行攻击。
今天菜鸟小编就来分享一下如何控制Boos缓慢的转向主角:
相信大家一看代码就明白了
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Boos : MonoBehaviour {
public float viewAngle = 50f;//Boss 攻击视角(假设Boss的攻击视角为50度)
private Transform player;//主角
public float rotateSpeed = 1f;//Boos转向的速度
void Update () {
Vector3 playerPos = player.position; //主角位置
playerPos.y = transform.position.y;//保证夹角不受Y轴的影响
//获取以boss前方向与主角的夹角
float angle = Vector3.Angle(playerPos - transform.position, Vector3.forward);
if (angle<viewAngle/2)
{
//在攻击视野之内 进行攻击
}
else
{
//在视野之外,进行转向
//Boss的目标转向
Quaternion targrtRotation = Quaternion.LookRotation(playerPos - transform.position);
//延迟转向 rotateSpeed 可以自行设置
transform.rotation = Quaternion.Lerp(transform.rotation, targrtRotation, rotateSpeed * Time.deltaTime);
}
}
}
小编还是个菜鸟,还请各位大侠、少侠看了多多指点,莫怪勿喷,纯属个人体会,谢谢!