问题描述
请帮助,我不确定自己做错了什么。
我正在关注Bolt Unity教程。与敌人碰撞时,玩家应该更改为“无敌”状态,此时,玩家对象在退出状态之后才应与敌人游戏对象碰撞。这是通过将Player图层蒙版更改为PlayerInvincible并取消选中PlayerInvincible和敌人的碰撞矩阵来完成的。但是,尽管图层蒙版可以实时正确更改(我已经在播放过程中通过观看流程图对其进行了测试),但是在我的测试中,玩家对象仍然会与敌人碰撞。
我已经检查了碰撞矩阵,据我所知它已正确设置。以下是教程中的时间戳和设置的屏幕截图。
以下是本教程,他们演示了播放器/敌人的碰撞是否按预期进行:https://youtu.be/lb38XBNxvbA?list=PLIJZVV88CLcuyjeS3FE7yHtGps_zxBLf6&t=338
在这里设置健康状态,切换图层蒙版:https://youtu.be/olHvE27uvOI?list=PLIJZVV88CLcuyjeS3FE7yHtGps_zxBLf6&t=1027
冲突矩阵
玩家健康状态设置
玩家蒙版设置
敌人面具设置
播放器蒙版按预期实时更改,但玩家仍会与敌人碰撞
解决方法
您在第一张图片中向我们显示的内容类似于Physics (3D)
的设置。我可以看到,因为在Physics 2D
中有没有选项function sendEmail($name,$email,$message,$subject)
{
global $signature;
$message .= "<br>" . $signature;
$admin = get_option('admin_email');
$to = $email;
$headers = 'Content-Type: text/html; charset=UTF-8';
$headers .= "From: . $admin . \r\n" ;
$headers .= "Reply-To: . $admin . \r\n" ;
$sent = wp_mail($to,$subject,$headers);
if($sent)
return true;
else
return false;
}
;)
请注意,Unity具有两个完全分离的,独立的,不相关的内置physics engines
- 内置3D物理(Nvidia PhysX引擎集成)
- 内置2D物理(Box2D引擎集成)
因此,还有两种不同的设置,一种用于3D,另一种用于2D。
=>由于这是使用Enable Unified Height Maps
组件的2D游戏,因此您必须为 Collider2D
配置碰撞矩阵!