亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

復制游戲對象的所有變換值?

復制游戲對象的所有變換值?

C#
Cats萌萌 2023-05-13 15:42:49
有沒有辦法在腳本中復制游戲對象的變換值(位置、旋轉、縮放)。我不想單獨復制每個轉換值,如下面的腳本所示。public GameObject Obj02;public GameObject Obj04;private Vector3 positionOfObj02;private Vector3 rotationOfObj02;private Vector3 positionOfObj04;private Vector3 rotationOfObj04;void Start(){    positionOfObj02 = Obj02.transform.localPosition;    rotationOfObj02 = Obj02.transform.localEulerAngles;    positionOfObj04 = Obj04.transform.localPosition;    rotationOfObj04 = Obj04.transform.localEulerAngles;}
查看完整描述

2 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

不,不是內置的,但我會推薦一個合適的類型


[Serializable]

public class TransformData

{

    public Vector3 LocalPosition = Vector3.zero;

    public Vector3 LocalEulerRotation = Vector3.zero;

    public Vector3 LocalScale = Vector3.one;


    // Unity requires a default constructor for serialization

    public TransformData() { }


    public TransformData(Transform transform)

    {

        LocalPosition = transform.localPosition;

        LocalEulerRotation = transform.localEulerAngles;

        LocalScale = transform.localScale;

    }


    public void ApplyTo(Transform transform)

    {

        transform.localPosition = LocalPosition;

        transform.localEulerAngles = LocalEulerRotation ;

        transform.localScale = LocalScale;

    }

}

并像使用它


public GameObject Obj02;

public GameObject Obj04;


private TransformData transformDataOfObj02;

private TransformData transformDataOfObj04;


void Start()

{

    transformDataOfObj02 = new TransformData(Obj02.transform);

    transformDataOfObj04 = new TransformData(Obj04.transform);

}

以后也許


transformDataOfObj02.ApplyTo(anotherObject.transform);


查看完整回答
反對 回復 2023-05-13
?
Smart貓小萌

TA貢獻1911條經驗 獲得超7個贊

我只是這樣做了: from.transform.rotation = transform.rotation; 這移動了整個旋轉



查看完整回答
反對 回復 2023-05-13
  • 2 回答
  • 0 關注
  • 151 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號