Recriando mecanismo de maletas do Far Cry 2

Utilizando a Unity 5.6 neste artigo você aprende como criar o mecanismo de itens das maletas.

Publicado em

Para quem já jogou Far Cry 2, vai se lembrar que em todas as partes do jogo havia algumas maletas espalhadas, conforme íamos se aproximando destas maletas o som ia aumentando e assim quando a encontramos, recolhíamos um diamante.

Pois bem, neste artigo estamos disponibilizando uma videoaula com todos os materiais, onde recriamos este mecanismo dentro do Unity 5.6.

Download do modelo:https://skfb.ly/68VNy

Áudio utilizado:https://freesound.org/people/mojomills/sounds/167551

Diamante.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Diamante : MonoBehaviour
{

    private GameObject _player;
    public GameObject _diamante;
    public float _maxDistance = 1.5f;
    private Animator _anima;
    private float _distancia;

    private bool _abriu = false;
    private float _tempo = 0;
    void Start()
    {
        _player = GameObject.FindGameObjectWithTag("Player");
        _anima = this.GetComponent();
        _distancia = 0;
    }


    void Update()
    {
        _distancia = Vector3.Distance(this.transform.position, _player.transform.position);
        if (_distancia <= _maxDistance && Input.GetKeyDown(KeyCode.E) && !_abriu)
        {
            _anima.SetTrigger("Abrir");
            _abriu = true;
            DiamantesControle._incrementarDiamantes = true;
        }

        if (_abriu)
        {
            _tempo += (1 * Time.deltaTime);

            if (_tempo >= 1.5)
            {
                Finalizar();
            }
        }
    }

    private void Finalizar()
    {
        Destroy(_diamante);
        Destroy(this.GetComponent());
        Destroy(this.GetComponent());
    }
}
DiamanteControle.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class DiamantesControle : MonoBehaviour
{

    public Text _text;

    private int _totalDiamantes = 0;
    public static bool _incrementarDiamantes = false;
    void Start()
    {
        _text.text = string.Format("Diamantes: {0}", _totalDiamantes);
    }

    void FixedUpdate()
    {
        if (_incrementarDiamantes)
        {
            _totalDiamantes++;
            _text.text = string.Format("Diamantes: {0}", _totalDiamantes);
            _incrementarDiamantes = false;
        }

    }
}

Videoaula: https://www.youtube.com/watch?v=ziU1lM3L3Ao

 

Gunnar Correa
Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web, Especialista em Tecnologias na Educação e Pós-graduando em Segurança da Informação. Começou seus estudos na área de programação quando era criança, e atualmente, está estudando desenvolvimento de jogos. Fundador da SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.

Deixe um comentário
Aguarde...