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