人物属性及伤害计算|Unity2022.2 最新教程《勇士传说》入门到进阶|4K

作者: M_Studio分类: 野生技能协会 发布时间: 2023-06-09 20:00:00 浏览:37924 次

人物属性及伤害计算|Unity2022.2 最新教程《勇士传说》入门到进阶|4K

五香小飞熊:
有一个问题:我实验了多次,就是OnTriggerStay2D只会执行30次,如果30次执行完之后我还是在野猪的触发器上,那么这时候OnTriggerStay2D也不会执行,这个时候就相当于人物是无敌的,但是在大部分游戏中,玩家持续和怪物重叠会持续掉血。这种情况该怎么解决呢?

【回复】修改OnTriggerStay2D的休眠时间方法:点击Edit -> Project Settings,然后选择Physics 2D,在General Settings中将Time To Sleep修改为一个较大的值,如10000
【回复】回复 @Sahara_熏伊草 : 问题已经解决了,在项目设置的2D物理当中设置休眠时间即可。
【回复】可以把player的rigidbody 2D的休眠模式改为“从不休眠”
巫师学徒丶:
老师为什么我的box collider里没有Layer Override这个选项?版本是2021年的.

【回复】我也用的2021(22的莫名其妙报错)unity窗口左上角 Edit - Project settings… - Physics 2D - 拉到最下面的一堆复选框。把enemy和player交叉点,enemy和enemy交叉点取消掉保存即可。但是这个是全局的设定,可能不像是新版本可以每个碰撞盒可以自定义,个人不是特别懂哈,再查查资料
【回复】回复 @灵活的修 :我目前用的方法是给猪挂一个空的子物体,暂且叫它“attack range”吧,里面加上触发器(勾了istrigger的碰撞盒),然后给这个子物体的layer设置成新建的“enemy attack”,最后回全局edit里只留“enemy attack”和“player”的碰撞检测,把Attack脚本(script)挂在子物体上就好了 可能比较绕+低效,只能说暂时解决,不太清楚最好的解决方法或者老版本的解决方法,仅供参考哈~
【回复】回复 @changling : 试了下他Edit里面只能全局设置,不能单独控制两个组件,所以实际操作起来就要么会撞动小猪有伤害,要么就能穿过小猪但是没伤害[大哭][大哭][大哭]
-minot:
2021版本不能单独对Collider组件设置碰撞过滤条件,使用碰撞矩阵设置的碰撞忽略规则会影响整个Object,因为只有Object拥有Layer。 但不同的Object可以有不同的Layer,所以可以挂一个Object在Enemy下面,我把这个逻辑写在了脚本里运行时动态挂载。注意实例化时的参数,和localScale置0。 对于这个子Object的Layer,我设置了新的EnemyLayer以确保过滤敌人。 添加子Object后,不影响怪物对角色的攻击。但玩家身上如果挂载同样的Attack组件,碰撞拿到的是子Object。 因此我在判空之后额外再判断一次transform.parent,然后试图拿parent的Character。这样Attack组件就能复用了。

种花x战兔:
老师,我运行的时候一直出现警告NullReferenceException: Object reference not set to an instance of an object Attack.OnTriggerStay2D (UnityEngine.Collider2D other)但是其他都是正常的。人物碰到野猪也会造成扣血

【回复】我也遇到过这个问题[笑哭] 你把用作触发器的胶囊碰撞体底部调高一点,要比作为碰撞体的box底部要高一点 或者你把平台也加入排除层 报错原因是触发器触碰到平台了也会开始执行方法 但是你的平台是没加Character脚本作为组件的 所以无法生成实例报错 你给平台加上这个脚本它也可以不报错[doge]
【回复】同样的问题,已解决[给心心][脱单doge]
【回复】回复 @ClearAllCache :[给心心]谢谢哥,一下就解决了
摆dua烂:
无意间发现的,刚创建完踩野猪会像个滑轮一样滑到下面卡着[妙啊]

烧麦BOY:
老师有问题:ontriggerStay2D(collider2D …),…这个位置代码我一打出来就是自动显示collision,并不是other人物经过时也检测不出,我想他可能是检测的是人物自身碰撞体,就强行修改为other,还是老样子[笑哭]

【回复】回复 @种花x战兔 : 跟着视频一步步做肯定没错,我也遇到这个问题了,后来检查了一遍发现是野猪Box Collider的排除层填到Rigidbody上了[笑哭]
【回复】回复 @旺旺小木冰 : 搞明白了,反复重做了几个小时,发现是跟上面一样排除的图层错了[喜极而泣]
御坂美琴梨:
才反应过来无敌可以靠跳过伤害计算来简单实现。在做老师的rpg项目时想的是把碰撞体disable,或者直接把攻击目标清空,感觉想的太复杂了,而且可能有bug

鸣鸣龘:
血量纹丝不动怎么办呀,老师?求方案[大哭]

【回复】方案都在视频里啊 你看看你哪马虎了 我也看不见你屏幕 咋凭空猜啊
柚zi酱:
自用(之所以是自用是因为我第一次写b站笔记,自己的思路都不太清晰,除了我你们应该很难理清(我自己也很凌乱)有些地方也少写了写部分(懒)不嫌弃的话就补充一下...

苏天天天天天天:
麦扣老师, 我遇到一个很奇怪的问题 我使用了OnTriggerStay2D 我最开始正常触发了受伤的逻辑并且成功扣除了血量, 但是等我无敌时间过了之后, 我站在原地不动(依旧保持和野猪碰撞的状态), 我不会继续进行扣血, 当我再次移动的时候才会执行受伤的逻辑[大哭] 我仔细对比了一下代码我并没有写错, 我对此真的百思不得其解[保卫萝卜_哭哭]球球老师解答[大哭]

【回复】回复 @番茄闭嘴 : 以下方案选择一种即可解决问题 1. 修改OnTriggerStay2D的休眠时间方法:点击Edit -> Project Settings,然后选择Physics 2D,在General Settings中将Time To Sleep修改为一个较大的值,如10000 2.player的rigidbody 2D 设置Sleep mode 为 never sleep
【回复】回复 @苏天天天天天天 : 兄弟,为什么我改后变成第一次无敌保护结束后,(一直处于野猪碰撞状态)就算不动作也会持续掉血?是我理解的最终效果出错了吗?不是受一次攻击触发一次无敌保护吗?
【回复】回复 @苏天天天天天天 :好的,谢谢
柴拾丶:
如果人物伤害等于零就会使野猪受0点伤害而进入无敌。解决办法是takedamage方法下if判断无敌那 加一个条件:或attacker.damage==0 。

盗贼可屠龙:
无敌触发后一直跟野猪重叠的话,无敌时间过去后不会再触发伤害,这个BUG后面会不会修改这个呢?因为后面还没看,先提个问题

猫猫明桑:
我有一个问题:就是在Debug.Log(other.name);时为啥一直输出地面的名字

【回复】回复 @猫猫明桑 :现在流行提问都不点关注的吗? 你输出地面名字就代表你碰撞到地面,两者持续检测碰撞关系啊
小冷火的阅读时间:
《人物属性及伤害计算》那课,3:58秒,Box collider的下方有一个Layer overrides,但我这个版本的unity里,Box collider下没有Layer overrides,我用的是2021.3.23f1c1,这个是不是我版本有问题呀?需要用2022.2的版本?如果是我就从头开始重做一次[doge]希望老师解答,感谢!

【回复】需要最低2022.2 那集视频描述里也写了 直接升级版本就行了 没必要重做 当然重做更好加深记忆
【回复】回复 @M_Studio :了解了~回来开始重做,感谢~
我有一只魔鬼的眼睛:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.TextCore.Text; public class gongjiheshanghai : MonoBehaviour { public int damage;//int攻击的数值为整数值 public float gongjifanwei;//攻击的范围 public float gongjipinglv;//攻击频率 private void OnTriggerStay2D(Collider2D other) { other.GetComponent<Character>().TakeDamage(this);//获得伤害值 } 我的代码是这么写的,为啥TakeDamage这总是在报错啊,就是倒数第二行倒数第二个单词这

【回复】关注都不点[UPOWER_370283072_憋气]
【回复】真的这么不认真看视频吗?! <Character>()?.TakeDamage 有个问号你看见没?我还特意讲了问号干嘛用的,真是不听课。还拼音写代码[UPOWER_370283072_憋气]
【回复】回复 @M_Studio : 关注了关注了,还点赞投币了,后面你每个视频我都会点赞投币的。不过这好像不是问好的问题,是代码就一直在报错,我动态发一张截图,我不知道是什么问题

游戏开发教程 UNITY 入门 游戏开发 编程 横版动作 经验分享 跟着麦扣做游戏 万物研究所·第九期

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

更多相关阅读