纠正物体改变父对象(transform.parent)引起的扭曲

制作游戏中,经常用到弓箭打在建筑或者玩家的身上,并且是跟随会动的物体移动的,例如电梯,怪物等。

我们射出的子弹或者弓箭类武器可能需跟随这些物体一起移动,最简单的办法就是改变弓箭的transform的parent。

如果父类的物体经过旋转和缩放,那么可能导致你的武器也收到影响。如下:
蓝色的地板
(图中是地板的缩放)

粉红的墙
(图中是墙的缩放和旋转)

错误的图
(图中的方块已经被扭曲了)

上图中的白色方块假设是弓箭模型,在拖入WallParent的时候默认数值都是reset的,拖入后就扭曲了,我们看到Rotation和Scale都受到了影响.

怎样做到不扭曲呢?我们可以这样。
因为缩放只会受到父的缩放和旋转影响,
所以我们在游戏中给弓箭和墙壁中间多加一个空的GameObject对象,我们暂且把他叫做ObjParent,把旋转该为(0,0,0),然后缩放值我们计算红色墙(WallParent)的Scale,用1/Scale(0.9999,2.5,0.02) = (10,0.4,50)赋值给ObjParent,相当于把旋转扭回来,如下图:
修改旋转和计算的缩放

最后我们再把弓箭(Obj)拖入ObjParent中我们发现还是1x1大小的盒子,那么测试成功了。如下图:

最终效果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值