Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 最好的办法是什么_C#_Visual Studio_Unity3d_Game Development - Fatal编程技术网

C# 最好的办法是什么

C# 最好的办法是什么,c#,visual-studio,unity3d,game-development,C#,Visual Studio,Unity3d,Game Development,所以,有一点背景故事。我已经在cel着色3d rpg上工作了一段时间了。它将具有在基于动作和基于回合之间切换的选项。不过那是以后的事了 我的问题是,我想增加一种在剑与敌人相撞时伤害敌人的方法。我知道OnCollisionCenter是一种方法,我也知道光线投射是一种不同但更复杂的方法。 我希望每次挥剑都能对敌人造成伤害(现在是黏液,以后会有更多的敌人),而不是瞬间死亡。我以前尝试过OnCollisionCenter,但无法使其以增量减少。 只是,嗯。。。瞬间的死亡 我使用的OnCollision

所以,有一点背景故事。我已经在cel着色3d rpg上工作了一段时间了。它将具有在基于动作和基于回合之间切换的选项。不过那是以后的事了

我的问题是,我想增加一种在剑与敌人相撞时伤害敌人的方法。我知道OnCollisionCenter是一种方法,我也知道光线投射是一种不同但更复杂的方法。 我希望每次挥剑都能对敌人造成伤害(现在是黏液,以后会有更多的敌人),而不是瞬间死亡。我以前尝试过OnCollisionCenter,但无法使其以增量减少。 只是,嗯。。。瞬间的死亡

我使用的OnCollisionCenter带有comparetag函数

知道我在unity 2019.4.X上可能也很重要


我曾尝试使用unity 2020.x,但这对我的电脑来说太麻烦了,因为每次我做一些事情时,都会出现应用程序加载的问题,这会很烦人。

如果你不扔剑,Raycasts不适合你。您正在使用正确的方式(碰撞),但缺少一点:

  • 当发生碰撞时,这种情况不会发生一次。许多碰撞是连续发生的
要避免这种情况,可以在发生碰撞时短时间关闭其中一个碰撞器。(这意味着:如果敌人有100点生命值,而我们每次命中减少20点生命值,则连续发生5次以上的碰撞。因此,我们正在一举杀死敌人。)


或者可以使用布尔值(例如
collisionactive
)。如果在剑摆动后发生碰撞,则将此布尔值设置为
true
。当挥剑结束时,您再次执行
false
。只要写
if(wingCollisionActive)返回在OnCollisionCenter的开头

谢谢,伙计!我会试试看,如果有什么不对劲,我会给你打电话的。当粘液看到玩家进入战斗模式时,光线投射会有好处吗?我有两个独立的级别UI。一个用于正常模式,当您刚刚探索时,另一个用于带有动作菜单的战斗模式。如果您想通过距离检测敌人,您可以使用
Physics.overlapphere
。您可以使用光线投射来确定目标是否在某个方向。您可以将光线投射视为一束细光束。