Init
This commit is contained in:
59
Assets/Scripts/InputPreset.cs
Normal file
59
Assets/Scripts/InputPreset.cs
Normal file
@@ -0,0 +1,59 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
[CreateAssetMenu(fileName = "InputPreset", menuName = "ScriptableObjects/InputPreset", order = 1)]
|
||||
|
||||
public class InputPreset : ScriptableObject
|
||||
{
|
||||
public InputPresetData data;
|
||||
}
|
||||
|
||||
|
||||
[System.Serializable]
|
||||
public class InputPresetData{
|
||||
public KeyCode leftInput;
|
||||
public KeyCode rightInput;
|
||||
public KeyCode jumpInput;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static class InputManager{
|
||||
public static InputPresetData m_data;
|
||||
public static InputPresetData data(){
|
||||
if(m_data==null){Init();}
|
||||
return m_data;
|
||||
}
|
||||
|
||||
public static void Init(){
|
||||
if(PlayerPrefs.HasKey("inputSettings")){
|
||||
Debug.Log("Trying to load input data : " + PlayerPrefs.GetString("inputSettings"));
|
||||
try{
|
||||
InputPresetData preset = JsonUtility.FromJson<InputPresetData>(PlayerPrefs.GetString("inputSettings"));
|
||||
m_data = preset;
|
||||
}catch(Exception error){
|
||||
Debug.Log("Error loading controls, Initiating default \n Error:" + error.Message);
|
||||
resetDefault();
|
||||
}
|
||||
}else{
|
||||
resetDefault();
|
||||
}
|
||||
}
|
||||
|
||||
static void resetDefault(){
|
||||
m_data = new InputPresetData();
|
||||
m_data.leftInput = KeyCode.A;
|
||||
m_data.rightInput = KeyCode.D;
|
||||
m_data.jumpInput = KeyCode.Space;
|
||||
|
||||
PlayerPrefs.SetString("inputSettings", JsonUtility.ToJson(m_data));
|
||||
PlayerPrefs.Save();
|
||||
}
|
||||
|
||||
public static void Save(){
|
||||
PlayerPrefs.SetString("inputSettings", JsonUtility.ToJson(m_data));
|
||||
PlayerPrefs.Save();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user