制作游戏中,经常用到弓箭打在建筑或者玩家的身上,并且是跟随会动的物体移动的,例如电梯,怪物等。
我们射出的子弹或者弓箭类武器可能需跟随这些物体一起移动,最简单的办法就是改变弓箭的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大小的盒子,那么测试成功了。如下图: