【发布时间】:2020-08-20 09:06:04
【问题描述】:
我怎样才能用流星循环破坏瓷砖。换句话说,流星如何循环破坏瓷砖。我有这个代码和 Debug.Log(Hit!) 工作但瓷砖不会死。我怎样才能摧毁它们,如果可能的话,我需要摧毁它们,而不是一个正方形,而是一个球形。非常感谢。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Tilemaps;
public class TilemapDestroyer : MonoBehaviour
{
public ContactPoint2D[] contacts = new ContactPoint2D[10];
public GameObject particles;
void OnCollisionStay2D(Collision2D collision)
{
Debug.Log("Hit!");
if (collision.gameObject.name == "Tilemap")
{
Debug.Log("Hit tilemap!");
int contactCount = collision.contactCount;
if (contactCount > contacts.Length)
contacts = new ContactPoint2D[contactCount];
collision.GetContacts(contacts);
Vector2 hitPosition = Vector2.zero;
for (int i = 0; i != contactCount; ++i)
{
hitPosition.x = contacts[i].point.x;
hitPosition.y = contacts[i].point.y;
collision.gameObject.GetComponent<Tilemap>().SetTile(collision.gameObject.GetComponent<Tilemap>().WorldToCell(hitPosition), null);
var newParticles = Instantiate(particles, hitPosition, Quaternion.identity);
this.transform.position, this.transform.rotation);
StartCoroutine(DestroyParticles(newParticles));
}
}
}
public IEnumerator DestroyParticles(GameObject particles)
{
yield return new WaitForSeconds(3f);
Destroy(particles);
}
}
【问题讨论】:
-
我希望像蠕虫游戏一样发生这种情况