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的形式設置。腳本

相關文章
相關標籤/搜索