Created
January 23, 2019 10:45
-
-
Save kaiware007/e64ef26aefa07e8492d6fcfdcf8b061e to your computer and use it in GitHub Desktop.
Command line args manager for Unity
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System.Collections.Generic; | |
using UnityEngine; | |
[DefaultExecutionOrder(-10000)] | |
public class CommandLineArgsManager : SingletonMonoBehaviour<CommandLineArgsManager> { | |
List<string> args = new List<string>(); | |
private void Initialize() | |
{ | |
var argsArray = System.Environment.GetCommandLineArgs(); | |
for(int i = 0; i < argsArray.Length; i++) | |
{ | |
Debug.Log("Command Line Args [" + i + "] " + argsArray[i]); | |
args.Add(argsArray[i]); | |
} | |
} | |
private void Awake() | |
{ | |
Initialize(); | |
} | |
/// <summary> | |
/// 該当引数が存在するか? | |
/// </summary> | |
/// <param name="argName"></param> | |
/// <returns></returns> | |
public bool Contains(string name) | |
{ | |
return args.Contains(name); | |
} | |
/// <summary> | |
/// 引数の整数値を取得してみる | |
/// </summary> | |
/// <param name="name"></param> | |
/// <param name="value"></param> | |
/// <returns></returns> | |
public bool TryGetInt(string name, out int value) | |
{ | |
int index = args.IndexOf(name); | |
// 引数見つからず | |
if (index == -1) | |
{ | |
value = -1; | |
return false; | |
} | |
// 引数の後に値がない(範囲オーバー) | |
if((index + 1) >= args.Count) | |
{ | |
value = -1; | |
return false; | |
} | |
// 引数の後の値が取り出せたら成功 | |
if(int.TryParse(args[index + 1], out value)) | |
{ | |
return true; | |
} | |
value = -1; | |
return false; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment