Can I create a global function/variable without a class in c#, or to skip reference to it?

For example, I don’t want to refer to Debug class when I need Log function. To skip it, I first tried to create a Namespace:

using UnityEngine;
using System.Collections;
namespace NMain
{
	void trace(object &message)
	{
		Debug.Log(message);
	}
}

Then I got CS0116.
The other idea was to put #define in the beginning of the code, but, for some reasons, it fails with CS1025

#define trace Debug.Log
using UnityEngine;
using System.Collections;

public class test_camera_pattern : MonoBehaviour 
{

	// Use this for initialization
	void Start () 
	{
	
	}
	
	// Update is called once per frame
	void Update () 
	{
		trace(transform.position.x);
	}
}

Debug. Log is not a big problem, but there are methods on a higher level of nesting than its one. I can create my own class to skip some references, but then I’ll have to refer to it. Isn’t there a better way to do it?

If you create a custom class that inherits from MonoBehavior and inherent all of your scripts from your custom class, then they will have access to any functionality you make available from your custom class.

This is textbook Inheritance.

using UnityEngine;
using System.Collections;
 
public class CustomBehaviour : MonoBehaviour {

    protected void Log(string message) {
        Debug.Log(message);
    }

}

using UnityEngine;
using System.Collections;
 
public class MyScript : CustomBehaviour {

    void Start() {
        Log("Hello World");
    }

}

Note that this is how the functionality we take for granted in MonoBehaviour is implemented: