Unity 基础 之 获取代码执行的当前 类、当前函数、当前代码行数、当前场景、当前挂载的游戏物体 等

38 篇文章 17 订阅

Unity 基础 之 获取代码执行的当前 类、当前函数、当前代码行数、当前场景、当前挂载的游戏物体 等

 

目录

Unity 基础 之 获取代码执行的当前 类、当前函数、当前代码行数、当前场景、当前挂载的游戏物体 等

一、简单介绍

二、实现原理

三、注意事项

四、效果预览

五、关键代码


 

 

一、简单介绍

Unity中的一些基础知识点。

在游戏开发中,获取代码执行的当前 类、当前函数、当前代码行数、当前场景、当前挂载的游戏物体 等。

 

二、实现原理

1、使用Unity封装的接口,或者反射,得到对应的信息;

 

三、注意事项

1、根据自己的需要,选择需要的信息;

 

四、效果预览

 

五、关键代码

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;

public class TestScripts : MonoBehaviour
{
    // Start is called before the first frame update
    void Start()
    {
        Init();
        Show(this.gameObject);
    }


    void Init()
    {
        //非静态函数版本
        string CallStack = "CallStack:[" + new System.Diagnostics.StackTrace().GetFrame(1).GetMethod() + "] => ";
        string SceneName = " Scene:[" + SceneManager.GetActiveScene().name + "]";
        string GameObjectName = " GameObject:[" + gameObject.name + "]";
        string ClassName = " Class:[" + this.GetType().Name + "]";
        string FunctionName = " Function:[" + System.Reflection.MethodBase.GetCurrentMethod().Name + "]";
        string Log = " Log:[" + "runing" + "]";
        string OutputResult = CallStack + SceneName + GameObjectName + ClassName + FunctionName + Log;
        Debug.Log(OutputResult);
    }

    public static void Show(GameObject go)
    {
        //静态函数版本
        string callStack = "CallStack:[" + new System.Diagnostics.StackTrace().GetFrame(1).GetMethod() + "] => ";
        string FileName = " FileName:[" + System.IO.Path.GetFileName(new System.Diagnostics.StackTrace(1, true).GetFrame(0).GetFileName()) + "]";
        string LineNumber = " Line:[" + new System.Diagnostics.StackTrace(1, true).GetFrame(0).GetFileLineNumber().ToString() + "]";
        string sceneName = " Scene:[" + SceneManager.GetActiveScene().name + "]";
        string gameObjectName = " GameObject:[" + go.name + "]";
        string className = " Class:[" + System.Reflection.MethodBase.GetCurrentMethod().ReflectedType.FullName + "]";
        string functionName = " Function:[" + System.Reflection.MethodBase.GetCurrentMethod().Name + "]";
        string log = " Log:[" + "GetComponentNullLog" + "]";
        string OutputResult = callStack + FileName + LineNumber + sceneName + gameObjectName + className + functionName + log;
        Debug.Log(OutputResult);
    }

}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仙魁XAN

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值