본문 바로가기

Unity

프리팹 원래 상태로 리로드하기

using System.Collections.Generic;
using UnityEngine;

public class RestoreTransforms : MonoBehaviour
{
    private List<Transform> _transforms = new List<Transform>();
    private List<Vector3> _positions = new List<Vector3>();
    private List<Quaternion> _rotations = new List<Quaternion>();

    private void Awake()
    {
        var allTransforms = GetComponentsInChildren<Transform>();
        foreach(var t in allTransforms)
        {
            _transforms.Add(t);
            _positions.Add(t.position);
            _rotations.Add(t.localRotation);
        }
    }

    private void OnEnable()
    {
        for (int i = 0; i < _transforms.Count; ++i)
        {
            _transforms[i].position = _positions[i];
            _transforms[i].localRotation = _rotations[i];
        }
    }
}

'Unity' 카테고리의 다른 글

[Unity] json Save system  (0) 2022.07.13
[Unity] Material 랜덤 색 변경  (0) 2022.06.23
게임 일시정지  (0) 2022.06.22
게임 종료 버튼  (0) 2022.06.22
특정 범위 Gizmo를 보이게 할 때  (0) 2022.05.13