Unity2D游戏实现回旋镖
以下我举出2种同使用情况的回旋镖
那么回旋镖需要怎么做呢?
任务清单如下
回旋镖会自我旋转
回旋镖达到一定距离会飞回来
回旋镖对敌人造成伤害
回旋镖会飞回玩家手里
带着这些任务我们来依次实现这两种情况的回旋镖吧
1在2D平面游戏上的回旋镖
实现一个丢出回旋镖后,会缓慢减速,然后再直接收回手里,碰到怪马上返回的效果
先创建一个回旋镖实体,并在上面添加如下脚本
public float Speedrotate;
public float AttackDamage;
private Vector2 speedVelocity;
private float Speedtemprotate;//中间变量记录最大旋转速度
bool first = true;//此bool值代表是否是第一阶段:即丢出去的飞行阶段
void Start()
{
speedVelocity = gameObject.GetComponent<Rigidbody2D>().velocity;
Speedtemprotate = Speedrotate;
}
private void FixedUpdate()
{
transform.Rotate(0, 0, Speedrotate);//根据旋转速度来自转
if(Speedrotate > 0 && first)//旋转速度和飞行随时间减小,直到为0就停止运动
{
gameObject.GetComponent<Rigidbody2D>().velocity -= speedVelocity * 0.02f;
Speedrotate -= (Speedtemprotate * 0.02f);
}
else if(Speedrotate<0&&first)//第一阶段结束开始过渡第二阶段