前言
上一篇文章里面设计了个克眼的Boss,然后这次准备搞一个新的Boss以及一些小怪,毕竟练习还是得要,而且感觉这三篇文章做的东西也挺水的,但是只是起步。还可以继续下去,每天多写写有益健康。U3D这个引擎对于初学者来说确实是福音,但是其实还有比如coco和godot那种,不过没找到相关的书籍,那么还是继续练习unity了。这次代码也不算很多,那就开始本次记录。
新的BOSS
现在很多BOSS都是在游戏泰拉瑞亚里面取材,毕竟这游戏的动画比较简单,容易处理,而且我本人也玩过一段时间,所以也比较熟悉。但是后面还是会整一些原创或者别的地方搬过来的东西。现在大部分精力都在代码设计上,其他的没怎么想,而且我好像对于类共享那种操作不是很熟悉,所以到时候再强化一下。
这一次选择的Boss是泰拉瑞亚里面一只支线Boss蜂后,就是一直很大的蜜蜂,然后,截图,抠图一气呵成。直接开始本次设计!
新小怪:小蜜蜂
游戏里确实存在小蜜蜂这个敌人,但是泰拉瑞亚的小怪,怎么说呢,实际大部分都离不开朝玩家冲过去,这样的似乎写得有点多了,没办法,随便设计一下。
这个小怪的基本设计就是,会在玩家现在的坐标选取左右两边随机一个位置,然后到达这个位置之后,朝玩家的方向冲过去,然后通过被Boss生成。一下子出现6只左右,那么就会均匀分布在玩家两边,同时冲刺,这时玩家需要跳高,或者跑开再跳高躲避。
就像这样。这是使用的图片:
这个其实设计还是比较简单,以下为其代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class smallBee : MonoBehaviour
{
[Header("Set in Inspector")]
public GameObject dino;
public Vector3 dinoPos;
public Vector3 standPlace;//这个是站立的地方
public Vector3 vel;
public Rigidbody rig;
public int facing;//朝向
public float go;//这个记录处于主角的哪一边
public Vector3 sumPos;
public bool isRush;// Start is called before the first frame update
void Start()
{
rig = GetComponent<Rigidbody>();
dino = GameObject.Find("dino");
dinoPos = dino.transform.position;
//以上为正常的获得主角的方法
int num = Random.Range(0, 2);
switch (num)
{
case 0:
go = -2f;
break;
case 1:
go = 2f;
break;
}
//获得两个位置
sumPos = dinoPos;
sumPos.x += go;//获得位置
if((sumPos.x - dinoPos.x) <= 0)//假如位置在后面
{
facing = -1;
}
else
{
facing = 1;
}
if (facing == -1)//转向
{//假设为后方
gameObject.transform.rotation = Quaternion.Euler(0, 180f, 0);
}
vel = sumPos - gameObject.transform.position;//获得一个速度
vel.Normalize();
rig.velocity = vel*5f;
}// Update is called once per frame
void Update()
{
if((gameObject.transform.position - sumPos).magnitude <= 0.1f&&isRush==false)
{
rig.velocity = Vector3.zero;//速度降为0
gameObject.transform.position = sumPos;
isRush = true;
}
if (isRush == true)//开始冲刺
{
rig.velocity = Vector3.left * facing*5f;
}
Vector3 ppos = gameObject.transform.position;
if (ppos.x <= 18f || ppos.x >= 31f)
{
Destroy(gameObject);
}
}
}
新小怪:大蜜蜂
这个大蜜蜂在游戏里面的主要逻辑就是一边朝玩家发射毒刺然后一边靠近,所以我将他设计为,在玩家头顶随机x轴区域生成,在存活的前10秒内持续向玩家发射毒刺,然后毒刺的逻辑跟翼龙一样,记录玩家第一个位置然后在跟踪过去,使用VELOCITY实现就可以了。然后在存活时间结束之后就会朝玩家冲过去,就是一开始是炮台,然后变成“翼龙”那样子。随机选取点位固定。
这个是使用的贴图: