综述
上篇我们讲述了平台的控制管理器,以及三种基础平台类型,下面将其他类型的平台进行介绍。
内容
导弹
该导弹是主要是通过一个警示线,然后通知玩家将要有导弹,然后横向发射一枚导弹,碰到玩家后会死亡,对玩家也有一个警示的作用。
警示牌
主要通过以下代码进行标识导弹
确定导弹的位置和方向
//导弹方向、位置
direction = Random.Range(0, 2);
transform.localScale = new Vector3(-1, transform.localScale.y);
if (direction == 0)//0代表向左
{
//spriteRenderer = GetComponent<SpriteRenderer>();
//spriteRenderer.flipX = true;//反向
transform.localScale = new Vector3(1, transform.localScale.y);
direction = -1;
}
显示警戒线和位置提示
height = Random.Range(-6f, 5f);
transform.position = new Vector2(-5.5f * direction, height);
//显示位置提示
sprite = Instantiate(warningSprite, new Vector3(-4.2f * direction, height), Quaternion.identity);
AudioSource spriteSource = sprite.GetComponent<AudioSource>();
spriteSource.Play();
//显示警告线
line = Instantiate(warningLine, new Vector3(0, height), Quaternion.identity);
导弹飞行
countTime += Time.deltaTime;
//计时之后fly并飞行,2秒前显示,3秒发射,5秒摧毁
if (countTime >= 4)
{
Destroy(gameObject);
}
else if (countTime >= 3)
{
//根据direction发生位移
transform.position += new Vector3(direction * speed * Time.deltaTime, 0);//y相对相机保持静止
}
else if (countTime >= 2)
{
Destroy(sprite);
Destroy(line);
}
else
{
sprite.transform.localScale = new Vector3(Mathf.Abs(1 - countTime) * 0.1f + 0.1f, Mathf.Abs(1 - countTime) * 0.1f + 0.1f, 0);
}
摆锤
如何实现摆动效果呢
我们需要设置球的跟随目标,然后围绕这个目标以一个角速度进行摆动
在如图文件中,添加这个Joint组件,设置目标,然后进行摆动。
获取组件,同时设置位置信息完成摆动效果。
LineRenderer line;
void Start()
{
line = GetComponent<LineRenderer>();
}
void Update()
{
line.SetPosition(0, startPoint.position);
line.SetPosition(1, endPoint.position);
}
游戏控制
设置时间开始,通过游戏计时来实现排名效果。在多人游戏中涉及到,这里不多展示。
/在每次场景加载时候就开始计时间
timeScore.text = Time.timeSinceLevelLoad.ToString("00");
总结
通过本次内容,主要分享了奇幻跳跃的两种危险因素,玩家碰撞会触发死亡效果,具体通过代码展示了他们的实现逻辑等。