c# - 粘在墙上的 Unity 2D 斧头
问题描述
问题是我已经投掷了斧头。问题是我怎样才能让斧头粘在墙上?当斧头撞到墙上时,不是斧头,有时是斧柄或斧头。抱歉英语不好。谢谢回答。
解决方案
斧头应该由两个独立的网格组成,因此您可以使用两个 MeshCollider,一个用于手柄,一个用于刀片。如果它是一个网格,您可以创建两个空的游戏对象,因为孩子给它们原始碰撞器来近似网格。
斧头预制件的层次结构应如下所示:
斧头(刚体)
- 手柄(MeshFilter、MeshRenderer、MeshCollider)
- 刀片(MeshFilter、MeshRenderer、MeshCollider)
或这个:
斧头(刚体、MeshFilter、MeshRenderer)
- 处理
- PrimitiveCollider1(例如 SphereCollider)
- PrimitiveCollider2(例如 BoxCollider)
- 刀
- 也只是原始对撞机来近似其形状
我希望斧头投掷是通过物理原理,所以当手柄撞到墙上时它已经看起来不错了?
为了让刀片粘在墙上,将这样的脚本添加到上面层次结构中的刀片中:
public DisableRigidbodyOnCollision
{
[SerializeField] private new Rigidbody rigidbody; // assign in the inspector
private void OnCollisionEnter(Collision collision)
{
// add check if we hit the wall and not something else
// e.g. via the name, tag or layer of collision.gameObject
rigidbody.enabled = false;
// alternatively, freeze the rigidbody or make it's velocity 0 and make it not be affected by gravity, etc.
}
}
推荐阅读
- python - 如何在 python 中处理不平衡的数据集和异常值?
- python-3.x - 是否有任何 API 端点来检查 DAG 是否为 PAUSESD / UNPAUSED?
- php - Laravel 5.8 - 如何授予用户读取、创建、更新、删除的权限?
- amazon-web-services - spark 无法从 emr 访问客户的 s3 存储桶
- java - Ubuntu TestContainers 无法连接到 Postgis:9.5
- android - Response.isSuccessfull() 为假
- r - 如何从主热图中提取一组基因兴趣的热图?
- azure - 在 Azure 中创建存储帐户时出现 403 错误
- javascript - 使用 for 循环或函数从数组中删除或过滤值
- python - 在 Keras 模型中实现 lambda 层