Scanvenger游戏制作笔记控制敌人的移动
Posted Lmz_0314
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scanvenger游戏制作笔记控制敌人的移动相关的知识,希望对你有一定的参考价值。
前言
本文章是我学习SIKI学院Scanvenger项目所做笔记,原视频请自行搜索,
材质等相关资源请微信搜索SIKI学院公众号,回复120获取。源码也在里面。
游戏引擎:Unity3D2020.3
之前的Prefabs内容
一、创建敌人脚本和BoxCollider
二、修改碰撞脚本
三、修改移动脚本
public class Enemy : MonoBehaviour
// 目标位置
private Vector2 targetPosition;
// 获取主角标签
private Transform player;
// 移动速度
public float smoothing = 3;
// 使用刚体控制运动
private Rigidbody2D rigidbody;
private void Start()
player = GameObject.FindGameObjectWithTag("Player").transform;
rigidbody = GetComponent<Rigidbody2D>();
targetPosition = transform.position;
private void Update()
rigidbody.MovePosition(Vector2.Lerp(transform.position, targetPosition, smoothing * Time.deltaTime));
public void Move()
Vector2 offset = player.position - transform.position; // 判断主角的偏移
if (offset.magnitude < 1.1f)
// 攻击
else
float x = 0, y = 0; // 默认移动都是0
// 判断是离Y偏移还是X偏移
if (Mathf.Abs(offset.y) > Mathf.Abs(offset.x))
// 按照Y轴移动
if(offset.y < 0)
y = -1;
else
y = 1;
else
// 按照X轴移动
if (offset.x > 0)
x = 1;
else
x = -1;
targetPosition += new Vector2(x, y);
四、存放所有敌人
在gameManager中找到所有的敌人
在enemy中存放所有敌人
通知GameManager玩家移动
设置玩家移动两步,敌人移动一步的规则
创建一个bool型记录玩家是否在休息
系列链接
Scanvenger游戏制作笔记(一)Unity3D状态机转换
Scanvenger游戏制作笔记(二)控制玩家操作
Scanvenger游戏制作笔记(三)Unity3D创建对墙体的攻击
Scanvenger游戏制作笔记(四)Unity3D控制角色吃食物
Scanvenger游戏制作笔记(五)控制敌人的移动
Scanvenger游戏制作笔记(六)Unity3D创建游戏UI的显示
Scanvenger游戏制作笔记(七)Unity3D控制游戏的失败
Scanvenger游戏制作笔记(八)Unity3D关卡胜利条件的判断
Scanvenger游戏制作笔记(九)Unity3D创建声音
以上是关于Scanvenger游戏制作笔记控制敌人的移动的主要内容,如果未能解决你的问题,请参考以下文章
Scanvenger游戏制作笔记Unity3D控制游戏的失败
Scanvenger游戏制作笔记Unity3D控制角色吃食物
Scanvenger游戏制作笔记Unity3D关卡胜利条件的判断
Scanvenger游戏制作笔记Unity3D关卡胜利条件的判断