How can i get a Rotation X.Y.Z for a save file

hey guys how are you

i am making a save and load system for my game but i am havind problems with saving the Rotation of my player in X.Y.Z i tried this but it wont rotate correct as intended.


using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[System.Serializable]
public class PlayerData 
{
    public float[] position;
    public float[] rotation;

   
    public PlayerData (SaveLoad player)
    {
       
        position = new float[3];
        position[0] = player.transform.position.x;
        position[1] = player.transform.position.y;
        position[2] = player.transform.position.z;

        // i tried it like this..
        rotation = new float[3];
        rotation[0] = player.transform.rotation.eulerAngles.x;
        rotation[1] = player.transform.rotation.eulerAngles.y;
        rotation[2] = player.transform.rotation.eulerAngles.z;
    }

}

using System.Collections;
using UnityEngine;

public class SaveLoad : Photon.MonoBehaviour
{
    public void SavePlayer()
    {
        SaveSystem.SavePlayer(this);
    }

    public void LoadPlayer()
    {
        PlayerData data = SaveSystem.LoadPlayer();

        Vector3 position;
        position.x = data.position[0];
        position.y = data.position[1];
        position.z = data.position[2];

        Vector3 rotation;
        rotation.x = data.rotation[0];
        rotation.y = data.rotation[1];
        rotation.z = data.rotation[2];
        
    }
}

Idk mate, works super fine on my machine

using UnityEngine;

public class PlayerComponent : MonoBehaviour
{
    [SerializeField] string _saveSlot = "save-slot-name";
    [SerializeField] KeyCode _saveKey = KeyCode.F5;
    [SerializeField] KeyCode _loadKey = KeyCode.F8;
    void Update ()
    {
        if( Input.GetKeyDown(_saveKey) )
        {
            SaveData data = new SaveData{ Numbers = new float[6] };
            {
                Vector3 pos = transform.position;
                Vector3 rot = transform.rotation.eulerAngles;
                
                data.Version = 1;
                
                data.Numbers[0] = pos.x;
                data.Numbers[1] = pos.y;
                data.Numbers[2] = pos.z;

                data.Numbers[3] = rot.x;
                data.Numbers[4] = rot.y;
                data.Numbers[5] = rot.z;
            }
            PlayerPrefs.SetString( key:_saveSlot , value:JsonUtility.ToJson(data) );
            Debug.Log($"Save Complete (data.Version:{data.Version})");
        }
        else if( Input.GetKeyDown(_loadKey) )
        {
            SaveData data = JsonUtility.FromJson<SaveData>( PlayerPrefs.GetString(_saveSlot) );
            if( data==null ) Debug.LogWarning("no save data to load");
            else if( data.Version==1 )
            {
                Vector3 pos = new Vector3{
                    x = data.Numbers[0] ,
                    y = data.Numbers[1] ,
                    z = data.Numbers[2] ,
                };
                Vector3 rot = new Vector3{
                    x = data.Numbers[3] ,
                    y = data.Numbers[4] ,
                    z = data.Numbers[5] ,
                };

                transform.SetPositionAndRotation( pos , Quaternion.Euler(rot) );
                Debug.Log($"Load Complete (data.Version:{data.Version})");
            }
            else if( data.Version==2 ) {}// etc.
            else Debug.LogWarning("data version is invalid");
        }
    }
}

[System.Serializable]
public class SaveData
{
    public int Version;
    public float[] Numbers;
}