1.根据玩家朝向判断预走位
2.发射目标点计算
3.设置发射朝向
(玩家预位置 = 玩家朝向归一化+玩家位置)
Vector3 f = Vector3.Normalize(playerTransform.forward);// normalized(playerTransform.forward); //playerTransform.forward.
int speed = playerContoller.IsStop == true ? 0 :2;
Quaternion newRotation = Quaternion.LookRotation(playerTransform.position+f*speed - transform.position);
turret.rotation = Quaternion.Slerp(turret.rotation, newRotation, Time.deltaTime * 10f);
完整NPC代码
//HM=====时间:
//设计内容:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyTank : FSM {
public enum FSMStates
{
Patrol,
Chase,
Attack,
Dead
}
// Use this for initialization
[SerializeField] private FSMStates currentState = FSMStates.Patrol;
[SerializeField] private GameObject enemyTankTurret;
[SerializeField] private T

这篇博客介绍了如何在Unity游戏中制作智能NPC,通过预判断玩家朝向来计算目标走位点。首先,根据玩家朝向确定预走位;其次,发射目标点的计算涉及朝向归一化和玩家位置的结合;最后,设置NPC的发射朝向以实现精确导航。文中提供了完整的NPC代码供参考。
最低0.47元/天 解锁文章
2万+

被折叠的 条评论
为什么被折叠?



