Unity使用transform.Translate()移動子物體時遇到的小問題
情況大概是這樣:父物體A下有子物體B,希望使B在本地坐標系下移動1單位,
B物體掛腳本代碼如下:
transform.Translate(1, 0, 0, Space.Self);
當A沒有縮放,即scale為(1, 1, 1)時一切正常,但當A有縮放的時候,出現了意外的情況,
A的縮放為(2, 1, 1)時執行該移動,B將在對于A的坐標系中向x軸正方向移動世界坐標中的1單位,而不是A坐標系中的1單位(世界坐標中2單位),
解決方法:
transform.localPosition = new Vector3(1 + transform.localPosition.x, transform.localPosition.y, transform.localPosition.z);
注意transfor.localPosition不能單獨改變x或y或z,必須以Vector3的形式設定,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/228748.html
標籤:其他
