using UnityEngine; using System.Collections; using UnityEditor; using System; using System.Linq; using System.IO; namespace Valve.VR { public class SteamVR_CopyExampleInputFiles : Editor { public const string steamVRInputExampleJSONCopiedKey = "SteamVR_Input_CopiedExamples"; public const string exampleJSONFolderParent = "Input"; public const string exampleJSONFolderName = "ExampleJSON"; [UnityEditor.Callbacks.DidReloadScripts] private static void OnReloadScripts() { EditorApplication.update += Update; } private static void Update() { EditorApplication.update -= Update; SteamVR_Input.CheckOldLocation(); CopyFiles(); } public static void CopyFiles(bool force = false) { bool hasCopied = EditorPrefs.GetBool(steamVRInputExampleJSONCopiedKey, false); if (hasCopied == false || force == true) { string actionsFilePath = SteamVR_Input.GetActionsFilePath(); bool exists = File.Exists(actionsFilePath); if (exists == false) { string steamVRFolder = SteamVR.GetSteamVRFolderPath(); string exampleLocation = Path.Combine(steamVRFolder, exampleJSONFolderParent); string exampleFolderPath = Path.Combine(exampleLocation, exampleJSONFolderName); string streamingAssetsPath = SteamVR_Input.GetActionsFileFolder(); string[] files = Directory.GetFiles(exampleFolderPath, "*.json"); foreach (string file in files) { string filename = Path.GetFileName(file); string newPath = Path.Combine(streamingAssetsPath, filename); try { File.Copy(file, newPath, false); Debug.Log("[SteamVR] Copied example input JSON to path: " + newPath); } catch { Debug.LogError("[SteamVR] Could not copy file: " + file + " to path: " + newPath); } } EditorPrefs.SetBool(steamVRInputExampleJSONCopiedKey, true); } } } } }