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);
}
}
}
这并不是说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;
}