Recriando mecanismo de maletas do Far Cry 2

Gunnar CorreaGunnar Correa02/07/2017 - 7.536 acessos

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


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

 


Far Cry 2 Aulas Unity Unity 5.6 Desenvolvimento de jogos Unity 3D aulas Desenvolvimento de Jogos Som 3D Unity Coletar item Unity itens Unity 5.6

Compartilhe nas redes sociais



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. É CEO do portal SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.


Fórum

Ficou com alguma dúvida? utilize nosso fórum de perguntas e respostas, lá nossa comunidade poderá te ajudar.

https://forum.satellasoft.com