怪物旋转
public class Monster : MonoBehaviour
{
public float MoveSpeed;
Vector3 _offset;
Vector3 _offsetRotate;
GameObject _player;
// Start is called before the first frame update
Vector3 _oldRotate;
Rigidbody2D _rig;
void Start()
{
MoveSpeed = 0.5f;
_player = GameObject.Find("player");
_rig = gameObject.GetComponent<Rigidbody2D>();
_oldRotate = -transform.up;
}
// Update is called once per frame
void Update()
{
}
private void FixedUpdate()
{
pursue();
}
// 追击
void pursue()
{
_offset = _player.transform.position - transform.position;
_rig.MovePosition(transform.position += _offset.normalized * MoveSpeed * Time.deltaTime);
// 旋转朝向
float angle = Vector2.Angle(_offset, _oldRotate);
//_rig.MoveRotation(new Quaternion(0, 0, angle));
transform.Rotate(0, 0, angle);
_oldRotate = _offset;
//transform.RotateAround(transform.position, transform.forward, angle);
//_offsetRotate = Vector3.RotateTowards(new Vector3(1, 1, 0), _offset, 5 * Time.deltaTime, 0);
//transform.rotation = Quaternion.LookRotation(_offsetRotate);
}
}

最后更新于