有你才美丽 发表于 2024-7-15 17:39

Unity中让仇敌跟随玩家,并在接触玩家时遏制移动的方式

实现法式

[*]首先,我们需要在场景中创建一个仇敌和一个玩家,并将它们分袂定名为”Enemy”和”Player”。
[*]然后,我们需要为仇敌添加一个脚本,该脚本将使仇敌跟随玩家。
[*]在脚本中,我们需要使用Vector3.MoveTowards方式来使仇敌向玩家移动。该方式将使仇敌朝着玩家的位置移动,而且可以设置一个速度参数来控制仇敌的移动速度。
[*]我们还需要添加一个触发器组件到仇敌的游戏对象上。当仇敌与玩家接触时,该触发器将触发一个事件,使仇敌遏制移动。
[*]最后,我们需要编写一些代码来检测仇敌是否与玩家接触。如果接触,则遏制仇敌的移动。
代码示例
以下是完整的代码示例:
using UnityEngine;

public class EnemyController : MonoBehaviour
{
    public Transform player;
    public float speed = 2.0f;
    public float stoppingDistance = 1.0f;

    private void Update()
    {
      // 让仇敌向玩家移动
      transform.position = Vector3.MoveTowards(transform.position, player.position, speed * Time.deltaTime);

      // 如果仇敌与玩家接触,遏制移动
      if (Vector3.Distance(transform.position, player.position) < stoppingDistance)
      {
            speed = 0;
      }
    }
}在以上代码中,我们首先定义了一个公共变量”player”,该变量将存储玩家的位置。然后,我们定义了一个”speed”变量,用于控制仇敌的移动速度。接着,我们定义了一个”stoppingDistance”变量,该变量将用于检测仇敌是否与玩家接触。
在Update函数中,我们使用Vector3.MoveTowards方式来使仇敌向玩家移动。我们还使用Vector3.Distance方式来检测仇敌是否与玩家接触。如果仇敌与玩家接触,则将速度设为0,从而遏制仇敌的移动。
以上就是在Unity中让仇敌跟随玩家并在接触玩家时遏制移动的方式,但愿对你有所辅佐。

页: [1]
查看完整版本: Unity中让仇敌跟随玩家,并在接触玩家时遏制移动的方式