Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/alfredo1995/dotween
DOTween is a fast, efficient, fully type-safe object-oriented animation engine.
https://github.com/alfredo1995/dotween
animation csharp dotween unity
Last synced: about 18 hours ago
JSON representation
DOTween is a fast, efficient, fully type-safe object-oriented animation engine.
- Host: GitHub
- URL: https://github.com/alfredo1995/dotween
- Owner: alfredo1995
- Created: 2023-09-05T17:09:30.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-05-14T09:19:58.000Z (6 months ago)
- Last Synced: 2024-05-14T10:35:29.066Z (6 months ago)
- Topics: animation, csharp, dotween, unity
- Language: C#
- Homepage:
- Size: 1.9 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Collected Item Move to Counter on HUD by DOTween
Import the DOTween library
https://assetstore.unity.com/packages/tools/animation/dotween-hotween-v2-27676
Prepare the scene
* Create a carvas
* Create 1 empty gameobject > add img component > (FondoScore) representing the background of the score
* Create 1 empty gameobject > add img component > (Score) Attach coin sprite (Score icon) representing the score icon > add text component as well
* Create 1 empty gameobject > add img component > (BotaoPontuacao) Add button > represented by the button > add text component as well* Create 1 empty gameobject > add img component > (StackCoins) Attach coin sprite and present the coins > duplicate
* In duplicate coins, reset the scale of x, y and z and gameObject (PilhaCoedas) that is grouping the coins, disable this componentCollected Item Move to Counter on HUD | Movimentação de item coletado para contador no HUD | DOTween
* Nas moedas duplicas, zerar a scala do x, y e z e gameObject (PilhaMoedas) que esta agrupando as moeda, desativar esse componente
Criar script para manipular as animações das moedas(gameobjetos)
using TMPro;
using UnityEngine;
using DG.Tweening;public class AniCoin: MonoBehaviour
{
[SerializeField] private GameObject pilhaMoedas; // Referência ao objeto contendo as moedas empilhadas
[SerializeField] private TextMeshProUGUI pontuacao; // Referência ao componente de texto para exibir a pontuação
[SerializeField] private Vector3[] inicialPos; // Armazena as posições iniciais das moedas
[SerializeField] private Quaternion[] inicialRot; // Armazena as rotações iniciais das moedas
[SerializeField] private int moedasColetaveis; // Quantidade de moedas coletáveispublic void Start()
{
// Inicialização das posições e rotações iniciais das moedas
inicialPos = new Vector3[moedasColetaveis];
inicialRot = new Quaternion[moedasColetaveis];// Loop para armazenar as posições e rotações iniciais de cada moeda
for (int i = 0; i < pilhaMoedas.transform.childCount; i++)
{
inicialPos[i] = pilhaMoedas.transform.GetChild(i).position;
inicialRot[i] = pilhaMoedas.transform.GetChild(i).rotation;
}
}public void Reset()
{
// Loop para restaurar as posições e rotações iniciais das moedas
for (int i = 0; i < pilhaMoedas.transform.childCount; i++)
{
pilhaMoedas.transform.GetChild(i).position = inicialPos[i];
pilhaMoedas.transform.GetChild(i).rotation = inicialRot[i];
}
}public void Recompensa(int moedasColetaveis)
{
Reset(); // Restaura as posições e rotações iniciais das moedasvar delay = 0f; // Inicializa o atraso para a animação das moedas
pilhaMoedas.SetActive(true); // Ativa o objeto contendo as moedas empilhadas
// Loop para animar cada moeda individualmente
for (int i = 0; i < pilhaMoedas.transform.childCount; i++)
{
// Animação de escala da moeda
pilhaMoedas.transform.GetChild(i).DOScale(endValue: 1f, duration: 0.3f)
.SetDelay(delay).SetEase(Ease.OutBack);// Animação de posição usando ancoragem
pilhaMoedas.transform.GetChild(i).GetComponent()
.DOAnchorPos(endValue: new Vector2(x: 305f, y: 603f), duration: 1f)
.SetDelay(delay + 0.5f).SetEase(Ease.OutBack);// Outra animação de escala da moeda
pilhaMoedas.transform.GetChild(i).DOScale(endValue: 1f, duration: 0.3f)
.SetDelay(delay + 1f).SetEase(Ease.OutBack);delay += 0.2f; // Incrementa o atraso para a próxima moeda
StartCoroutine(routine: ContadorMoedas(moedasColetaveis: 7));
} } }IEnumerator ContadorMoedas(int moedasColetaveis)
{
yield return new WaitForSecondsRealtime(time: 1f);var timer = 0f;
for (int i = 0; i < moedasColetaveis; i++)
{
PlayerPrefs.SetInt("moeda", PlayerPrefs.GetInt(key: "moeda") + moedasColetaveis);pontuacao.text = PlayerPrefs.GetInt(key: "moeda").ToString();
timer += 0.1f;
yield return new WaitForSecondsRealtime(timer);
} }