Logo SatellaSoft



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.


Ícone homem Gunnar Correa
Ícone data de publicação 02/07/2017
Ícone quantidade de visualização 912
Ícone bandeira do Brasil Português

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

 




Sobre o autor


Gunnar Correa

Nome: Gunnar Correa

Site: http://www.gunnarcorrea.com


Autodidata, graduado em Desenvolvimento Web e especialista em Tecnologias na Educação em uma universidade no interior de São Paulo. Comecei meus estudos na área de programação quando ainda era criança, e atualmente estou estudando desenvolvimento de jogos.

Sou o CEO do portal SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.


Comentários



É necessário estar autenticado para comentar, clique aqui para se registrar ou aqui para acessar a sua conta!