【问题标题】:Can create a function that calls Debug.Log可以创建一个调用Debug.Log的函数
【发布时间】:2016-10-02 06:27:45
【问题描述】:

在 Unity3d C# 中,我可以创建一个调用 Debug.Log 的函数,例如:

 void p(string p)
 {
    Debug.Log
    (p);
 }

这适用于 int、string、Vector3、GameObject 吗?

谢谢

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    Debug.Log 已经可以做到这一点。它以objectObject 作为参数。这些是Debug.Log 的函数原型:

    public static void Log(object message);
    public static void Log(object message, Object context);
    

    您可以通过两种方式做到这一点:

    1.使用objectObject作为参数。

    void p(object message)
    {
        Debug.Log(message);
    }
    
    void p(object message, Object context)
    {
        Debug.Log(message, context);
    }
    

    用法

    只有一个参数

    p("Test");
    p(50);
    p(50.5f);
    p(false);
    

    多参数

    p(false, new Object());
    

    2.使用泛型:

    void p<T1>(T1 message)
    {
        Debug.Log(message);
    }
    
    void p<T1, T2>(T1 message, T2 context)
    {
        Debug.Log(message, context as Object);
    }
    

    用法

    只有一个参数

    p<string>("Test");
    p<int>(50);
    p<float>(50.5f);
    p<bool>(false);
    

    多参数

    p<bool,Object>(false, new Object());
    

    我会选择第一种方法,因为它更容易打字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 1970-01-01
      • 2022-01-14
      • 2012-11-21
      • 1970-01-01
      相关资源
      最近更新 更多