0
所以我正在从Spectrum制作游戏“Snake Pit”的复制品。你可以作为你的玩家移动,并有多个AI控制的蛇。我试图找出如何让蛇头在你身边的时候移动到你的位置。这是我想要实现它的代码。如何检测范围内的AI上的特定对象?
public class SnakeController : MonoBehaviour {
public int maxSize;
public int currentSize;
public GameObject snakePrefab;
public Snake Head;
public Snake Tail;
public Vector2 nextPos;
public int NESW;
int Random;
float lineTimer;
int NESWTemp;
// Use this for initialization
void Start() {
InvokeRepeating("TimerInvoke", 0, .3f);
lineTimer = UnityEngine.Random.Range(0, 2.5f);
currentSize = 1;
}
// Update is called once per frame
void Update() {
lineTimer -= Time.deltaTime;
if (lineTimer <= 0)
{
ComChangeD();
lineTimer = UnityEngine.Random.Range(0, 2.5f);
}
}
void TimerInvoke()
{
Movement();
if(currentSize >= maxSize)
{
TailFunction();
}
else
{
currentSize++;
}
}
void Movement()
{
GameObject temp;
nextPos = Head.transform.position;
if(nextPos.y > 3.22)
{
NESW = 2;
}
else if (nextPos.y < -4.42)
{
NESW = 0;
}
else if (nextPos.x < -8.2)
{
NESW = 1;
}
else if (nextPos.x > 7.7)
{
NESW = 3;
}
switch (NESW)
{
case 0:
nextPos = new Vector2(nextPos.x, nextPos.y + 0.32f);
break;
case 1:
nextPos = new Vector2(nextPos.x + 0.32f, nextPos.y);
break;
case 2:
nextPos = new Vector2(nextPos.x, nextPos.y - 0.32f);
break;
case 3:
nextPos = new Vector2(nextPos.x - 0.32f, nextPos.y);
break;
}
temp = (GameObject)Instantiate(snakePrefab, nextPos, transform.rotation);
Head.SetNext(temp.GetComponent<Snake>());
Head = temp.GetComponent<Snake>();
return;
}
void ComChangeD()
{
NESWTemp = UnityEngine.Random.Range(0, 3);
if (NESW == 0)
{
switch (NESWTemp)
{
case 0:
NESW = 1;
break;
case 1:
NESW = 2;
break;
case 2:
NESW = 3;
break;
}
}
else if (NESW == 1)
{
switch (NESWTemp)
{
case 0:
NESW = 0;
break;
case 1:
NESW = 2;
break;
case 2:
NESW = 3;
break;
}
}
else if (NESW == 2)
{
switch (NESWTemp)
{
case 0:
NESW = 0;
break;
case 1:
NESW = 1;
break;
case 2:
NESW = 3;
break;
}
}
else if (NESW == 3)
{
switch (NESWTemp)
{
case 0:
NESW = 0;
break;
case 1:
NESW = 1;
break;
case 2:
NESW = 2;
break;
}
}
}
通常在这些游戏的逻辑是徘徊无论在AI是,取1步步接近玩家角色..无论它是.. – BugFinder
@BugFinder好有多个蛇,这会让游戏太难,我不介意测试和调整。你能帮助我吗?但是,除了这个功能之外,如果蛇在旁边,蛇会杀死玩家。现在他们只是要去的地方,并不真正关心球员。 – Shanespeed
我不知道那是什么蛇游戏,但为什么不使用对撞机? –