Unity使用transform.Translate()移动子物体时遇到的小问题

Unity使用transform.Translate()移动子物体时遇到的小问题

状况大概是这样:父物体A下有子物体B,但愿使B在本地坐标系下移动1单位。code

B物体挂脚本代码以下:orm

transform.Translate(1, 0, 0, Space.Self);it

当A没有缩放,即scale为(1, 1, 1)时一切正常,但当A有缩放的时候,出现了意外的状况。io

A的缩放为(2, 1, 1)时执行该移动,B将在对于A的坐标系中向x轴正方向移动世界坐标中的1单位,而不是A坐标系中的1单位(世界坐标中2单位)。form

解决方法:transform

transform.localPosition = new Vector3(1 + transform.localPosition.x, transform.localPosition.y, transform.localPosition.z);方法

注意transfor.localPosition不能单独改变x或y或z,必须以Vector3的形式设置。脚本

相关文章
相关标签/搜索