Skip to content

Instantly share code, notes, and snippets.

@kaiware007
Created January 23, 2019 10:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kaiware007/e64ef26aefa07e8492d6fcfdcf8b061e to your computer and use it in GitHub Desktop.
Save kaiware007/e64ef26aefa07e8492d6fcfdcf8b061e to your computer and use it in GitHub Desktop.
Command line args manager for Unity
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