Treinamento do projeto--Desenvolvimento de jogo multijogador Unity--Parte seis

análise

No jogo Fantasy Jumping Game, explicamos principalmente o sistema de animação e o sistema de controle de personagem da unidade. O seguinte é principalmente sobre outras expansões do jogo.

contente

Primeiro, estamos falando de plataformas. Neste salto milagroso, usamos principalmente 5 plataformas diferentes e fatores perigosos, como mísseis e pêndulos, para enriquecer a diversão e a jogabilidade do jogo. A seguir explicamos principalmente essas plataformas e suas funções. Todas as plataformas e projéteis se movem para cima com o tempo e serão destruídas quando atingirem uma certa altura.

//平台有多种,都需要执行这个移动代码
void Update()
    {
    
    
        MovePlatform();
    }

    //移动板子
    void MovePlatform()
    {
    
    
        transform.position += movement * Time.deltaTime;

        if (transform.position.y >= topLine.transform.position.y)//超过了TopLine的高度就摧毁、毕竟超出屏幕不影响游戏了、物体积攒起来会变卡所以摧毁
        {
    
    
            Destroy(gameObject);
        }

    }

Além disso, existe um gerador de plataforma, que controla a geração da plataforma e aumenta o fator de risco da plataforma

 public void SpwanPlatform()//计时方法、一定时间生成一个平台,没有到特定时间则仅仅积累时间不生成平台
    {
    
    
        countTime += Time.deltaTime;
        countTime2 += Time.deltaTime;
        spawnPosition = transform.position;//获取我自己的位置作为生成板子的位置、是这个脚本挂在了“startLine”物体身上,我/this=StartLine
        spawnPosition.x = Random.Range(-3.5f, 3.5f);//水平位置要随机一下
        if (countTime >= spwanTime)//到了时间就生成一个平台
        {
    
    
            CreatePlatform();
            countTime = 0;//置0
        }
        if (countTime2 >= spwanTime+1)
        {
    
    
            CreateMenacePlatform();
            countTime2 = 0;
        }
    }

 if(platNum == 0)//two platforms
        {
    
    
            int index2 = Random.Range(0, platforms.Count);
            if(System.Math.Abs(spawnPosition.x)>=1.5f)
                Instantiate(platforms[index2], new Vector3(-spawnPosition.x,spawnPosition.y), Quaternion.identity);
            else
                Instantiate(platforms[index2], new Vector3(spawnPosition.x-1.5f, spawnPosition.y-1), Quaternion.identity);
        }

plataforma comum

Em primeiro lugar, o que queremos falar é a plataforma comum, que também é a plataforma básica mais simples.Esta plataforma fornece principalmente aos jogadores o papel de ficar em pé, sem efeitos especiais.
insira a descrição da imagem aqui

plataforma temporária

A plataforma é principalmente para fornecer uma estadia temporária, quando você pisar nela, ela existirá apenas por 3 segundos, e então ela será quebrada e não existirá mais.
insira a descrição da imagem aqui

AudioSource breakAudioSource;
    public AudioClip breakClip;
    float countTime = 0, endTime = 1;
    bool start = false;//控制是否需要计时
    void Update()
    {
    
    
        if(start)
        {
    
    
            countTime += Time.deltaTime;
        }
        if(countTime>=endTime+1)
        {
    
    
            Destroy(gameObject);
        }
        if (countTime >= endTime)
        {
    
    
            transform.position = new Vector3(0, -20);
        }
    }

    public void OnCollisionEnter2D(Collision2D collision)
    {
    
    
    //一旦进行了玩家触碰,就需要倒计时进行销毁。并且进行音效触发。
        if (collision.collider.gameObject.tag.Equals("Player"))
        {
    
    
            breakAudioSource = GetComponent<AudioSource>();
            breakAudioSource.clip = breakClip;
            breakAudioSource.PlayDelayed(1);
            start = true;
        }
    }

plataforma de fãs

A plataforma tem dois efeitos. O primeiro é que quando o jogador tocar na plataforma, haverá um efeito de quique. É preciso pensar bem se pisa nela, pois se o jogador atingir a altura máxima, ele tocará no pico superior e causar a morte. A outra é que, quando o jogador o toca, o ventilador gira automaticamente e executa uma animação de rotação.

 private void OnCollisionEnter2D(Collision2D other)
    {
    
    
//执行旋转动画
        if (other.collider.gameObject.tag.Equals("Player"))
        {
    
    
            animator.Play("Fan_run");
        }
    }

O jogador pula, tocando a plataforma do ventilador, fazendo com que o jogador pule.

 private void OnCollisionEnter2D(Collision2D other)//碰撞检测
    {
    
    
        if (other.gameObject.CompareTag("Fan"))//如果和一个标签为“Fan”的平台碰撞了,那玩家保持原有水平方向的速度的同时获得一个向上的10float的速度。
        {
    
    
            rb.velocity = new Vector2(rb.velocity.x, 10f);
        }
	}

Resumir

Desta vez, ele fala principalmente sobre o gerador de plataforma e três efeitos de plataforma simples, o impacto causado pelo toque do jogador e as demais plataformas serão descritas na próxima vez.

Acho que você gosta

Origin blog.csdn.net/qq_53259920/article/details/125135995
Recomendado
Clasificación