项目实训----Unity多人游戏开发----第七篇

游戏奇幻跳跃之平台2

综述

上篇我们讲述了平台的控制管理器,以及三种基础平台类型,下面将其他类型的平台进行介绍。

内容

导弹

该导弹是主要是通过一个警示线,然后通知玩家将要有导弹,然后横向发射一枚导弹,碰到玩家后会死亡,对玩家也有一个警示的作用。
在这里插入图片描述
警示牌
在这里插入图片描述
主要通过以下代码进行标识导弹

确定导弹的位置和方向

//导弹方向、位置
        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");

总结

通过本次内容,主要分享了奇幻跳跃的两种危险因素,玩家碰撞会触发死亡效果,具体通过代码展示了他们的实现逻辑等。

猜你喜欢

转载自blog.csdn.net/qq_53259920/article/details/125137358