微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity 2D我做了一颗流星,我想让流星摧毁在圆形区域内撞击的瓷砖

如何解决Unity 2D我做了一颗流星,我想让流星摧毁在圆形区域内撞击的瓷砖

我如何用流星循环摧毁瓷砖。换句话说,流星如何循环破坏瓷砖。我有这段代码,并且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);


    }
}

解决方法

我的第一个想法是将一个球体碰撞器附加到此流星上,然后使用Physics.SphereCastAll影响所有瓦片。 如果您是Unity中的新Raycasting,建议您先阅读一下

,

您可以尝试以下操作: 流星触地后,您可以使用Physics.CheckSphere()方法获取该范围内的所有GameObject。该方法将位置,直径和可选的LayerMask作为参数。它返回一个GameObjects数组。现在,只需列出数组中的GameObject,然后使用Destroy()方法销毁它们即可。 (您在方法中传递了要销毁的GameObject。)

我希望这会有所帮助。 :)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。