介绍
在 Unity 开发中,有时需要在代码中获取当前方法的调用者方法名,以便进行日志记录、调试等操作。本教程将详细介绍如何使用 C# 中的 StackTrace
类来实现这一功能,并将其封装成一个便捷的工具类,以方便在项目中的任何地方使用。
获取调用者方法名的方法
首先,我们需要使用 StackTrace
类来获取调用者方法名。StackTrace
类可以获取当前执行代码的调用堆栈信息,通过分析调用堆栈信息,我们可以找到调用者的方法名。
using System.Diagnostics;
public class StackTraceHelper
{
/// <summary>
/// 获取调用者的方法名
/// </summary>
/// <returns>调用者的方法名</returns>
public static string GetCallerMethodName()
{
StackTrace stackTrace = new StackTrace();
StackFrame[] stackFrames = stackTrace.GetFrames();
// 获取调用者的方法名
string callerMethodName = string.Empty;
if (stackFrames.Length > 1)
{
callerMethodName = stackFrames[1].GetMethod().Name;
}
return callerMethodName;
}
}
使用方法
使用这个工具类非常简单,只需要在需要获取调用者方法名的地方调用 GetCallerMethodName
方法即可。
using UnityEngine;
public class ExampleScript : MonoBehaviour
{
void Start()
{
string callerMethodName = StackTraceHelper.GetCallerMethodName();
Debug.LogFormat("Caller method name: {0}", callerMethodName);
}
}