Você está na página 1de 1

O componente TilemapCollider2D é responsável por criar um colisor em 2D que

segue as bordas do tilemap. Para adicionar água ao inventário quando o


jogador estiver dentro do colisor e pressionar a tecla "E", você pode seguir os
seguintes passos:

1. Adicione um TilemapCollider2D ao seu tilemap clicando com o botão


direito do mouse no painel Hierarchy e selecionando "2D Object" >
"Tilemap Collider 2D".
2. Adicione um script ao objeto do jogador que detecta quando o jogador
está dentro do colisor do tilemap. Você pode fazer isso usando o método
OnTriggerStay2D(Collider2D other) que é chamado quando um objeto com
um colisor 2D fica dentro do colisor do jogador. Dentro deste método,
você pode verificar se o jogador está pressionando a tecla "E" e, se
estiver, adicionar água ao inventário.
3. Certifique-se de que o objeto do jogador tenha um colisor 2D e que
esteja marcado como um "trigger". Isso permite que o colisor do jogador
detecte quando está dentro do colisor do tilemap sem colidir fisicamente
com ele.

Aqui está um exemplo de código para o script do jogador:

csharpCopy code
using UnityEngine; public class PlayerController : MonoBehaviour { public KeyCode pickupKey =
KeyCode.E; public string waterObjectName = "Water" ; // O nome do objeto de água que será coletado
public Inventory inventory; // Referência ao componente de inventário private bool
isInsideTilemapCollider = false ; // Verifica se o jogador está dentro do colisor do tilemap private void
OnTriggerEnter2D(Collider2D collision) { if
(collision.gameObject.GetComponent<TilemapCollider2D>() != null ) { isInsideTilemapCollider =
true ; } } private void OnTriggerExit2D(Collider2D collision) { if
(collision.gameObject.GetComponent<TilemapCollider2D>() != null ) { isInsideTilemapCollider =
false ; } } private void OnTriggerStay2D(Collider2D collision) { if (isInsideTilemapCollider &&
Input.GetKeyDown(pickupKey)) { if (collision.gameObject.name == waterObjectName)
{ inventory.AddItem(waterObjectName); // Adiciona água ao inventário Destroy(collision.gameObject);
// Destroi o objeto de água } } } }

Este código assume que

Você também pode gostar