You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity游戏Mod开发:如何让爆炸位置与人类单位死亡位置一致

修改方案

你当前代码爆炸位置固定的原因是Position字段被硬编码为了常量坐标new Vector3(5, 5, 5),只需将其替换为死亡单位的实时世界坐标即可。
事件参数中的life就是触发本次死亡事件的人类单位的生命值组件,Unity标准逻辑下可以通过transform.position获取其所在的世界坐标,修改后的代码如下:

ModAPI.OnDeath += (sender, life) => {
    // 提前校验对象有效性,避免空引用异常
    if (life == null || life.transform == null) return;

    ExplosionCreator.Explode(new ExplosionCreator.ExplosionParameters
        {
            Position = life.transform.position,
            CreateParticlesAndSound = true,
            LargeExplosionParticles = false,
            DismemberChance = 0.1f,
            FragmentForce = 8,
            FragmentationRayCount = 32,
            Range = 10
        });   
};

可选优化

如果希望爆炸生成位置更贴合人类的躯干位置而非脚底,可以给坐标加上高度偏移:
Position = life.transform.position + new Vector3(0, 1.2f, 0)
你可以根据游戏内人类单位的实际身高调整Y轴偏移值。

内容的提问来源于stack exchange,提问作者JustAMeanie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:15:00