Vereinfachen Sie es ein wenig, indem Sie Zeichenfolgen in Argumente analysieren und Methoden ausführen

Auf solche Situationen stoßen wir häufig. Analysieren Sie zuerst die Zeichenfolge in Float oder Int, Bool usw. oder analysieren Sie die JSON-Zeichenfolge in ein Objekt und verwenden Sie sie dann als Parameter der Methode. Es ist immer erforderlich, sich wiederholenden Code zu schreiben Um dieses Problem zu vermeiden, wurde diese Klasse entwickelt und sie funktioniert immer noch einwandfrei.

Nun, das sind die Codes, fügen Sie sie hier als Backup ein, huh, huh.

using System;
using UnityEngine;
using UnityEngine.Events;

public class ParseExecute
{
	static public void Float(string strValue, UnityAction<float> act)
	{
		float val;
		if (float.TryParse(strValue, out val))
		{
			act?.Invoke(val);
		}
		else
		{
			Debug.Log("U3DLog:ParseExecute.Float failed,because can NOT parse " + strValue + " to float.");
		}
	}

	static public void Int(string strValue, UnityAction<int> act)
	{
		int val;
		if (int.TryParse(strValue, out val))
		{
			act?.Invoke(val);
		}
		else
		{
			Debug.Log("U3DLog:ParseExecute.Int failed,because can NOT parse " + strValue + " to int.");
		}
	}

	static public void Bool(string strValue, UnityAction<bool> act)
	{
		bool val;
		if (bool.TryParse(strValue, out val))
		{
			act?.Invoke(val);
		}
		else
		{
			Debug.Log("U3DLog:ParseExecute.Bool failed,because can NOT parse " + strValue + " to bool.");
		}
	}

	static public void Json<T>(string json, UnityAction<T> act)
	{
		T t = JsonUtility.FromJson<T>(json);
		if (t != null)
		{
			act?.Invoke(t);
		}
		else
		{
			string tName = t.GetType().Name;
			Debug.Log("U3DLog:ParseExecute.Json<" + tName + "> failed,because can NOT parse " + json + " to " + tName + ".");
		}
	}
}

Supongo que te gusta

Origin blog.csdn.net/ttod/article/details/130781610
Recomendado
Clasificación