Unity Pong AI移动速度

本文关键字:速度 移动 AI Pong Unity | 更新日期: 2023-09-27 18:06:10

我试图在Unity c#中为Pong游戏制作AI,但问题是AI似乎以与球飞行相同的速度移动。我似乎不知道如何让AI以设定的速度或与玩家相同的速度移动。

using UnityEngine;
using System.Collections;
public class AIController : MonoBehaviour {
Transform Ball;
Transform Ai;
void Update () 
{
    //
    Ball = GameObject.FindGameObjectWithTag ("Ball").transform;
    Ai = GameObject.FindGameObjectWithTag ("Ai").transform;
    if (Ball.position.y > 0) {
        Debug.Log ("Ball Pos " + Ball.position.y);
        Ai.position = new Vector3(Ai.position.x, Ball.position.y, 0);
    }
    else if (Ball.position.y < 0) 
    {
        Debug.Log("Ball Pos " + Ball.position.y);
        Ai.position = new Vector3(Ai.position.x, Ball.position.y, 0);
    }
}
}

Unity Pong AI移动速度

这并不是说AI在球处以相同的速度移动,而是AI 与球处于相同的位置。看这个:

Ai.position = new Vector3(Ai.position.x, Ball.position.y, 0);

AI.position.y始终是球Ball.position.y的位置。这个AI从来不会输。

你必须以与更新玩家类似的方式更新AI。在ai中增加或减少。只需比较球的位置和AI的位置,并更新最后一个。

if (Ball.position.y > Ai.position.y)
{
    Ai.position.y += AiSpeed;
}
else
{
    Ai.position.y -= AiSpeed;
}