十一敌人脚本
11.1创建脚本
切换Project/Asserts/Scripts创建C#脚本,修改名称为Enemy。
11.2修改脚本
代码如下:
using UnityEngine;
using System.Collections;
public class Enemy : MovingObject
{
//对主角造成伤害
public int playerDemage;
//动画
private Animator animator;
//移动目标
private Transform target;
//每2回合移动一次
private bool skipMove;
protected override void Start ()
{
animator = GetComponent<Animator>();
target = GameObject.FindGameObjectWithTag("Player").transform;
base.Start();
}
protected override void AttemptMove<T>(int xDir,int yDir)
{
if(skipMove)
{
skipMove = false;
return ;
}
base.AttemptMove<T>(xDir,yDir);
skipMove = true;
}
public void EnemyMove()
{
int xDir = 0 ;
int yDir = 0 ;
//与主角同一x的时候,向主角移动
if(Mathf.Abs(target.transform.position.x - transform.position.x) < float.Epsilon)
yDir = target.transform.position.y > transform.position.y ? 1:-1;
//不在同一x的时候,移动向主角x
else
xDir = target.transform.position.x > transform.position.x ? 1:-1;
AttemptMove<Player>(xDir,yDir);
}
protected override void OnCantMove<T>(T component)
{
Player hitPlayer = component as Player;
hitPlayer.LoseFood(playerDemage);
}
}

本文介绍了一个Unity中敌对角色的AI脚本实现,包括敌人的移动逻辑、动画控制及与玩家交互的方式。该脚本使用C#编写,实现了每两回合移动一次的逻辑,并在玩家与敌人相遇时对玩家造成伤害。
1034

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



