Object.operator ==
static function operator ==(x: Object, y: Object): bool;
static bool operator ==(Object x, Object y);
static def operator ==(x as Object, y as Object) as bool
Parameters

x The first Object.
y The Object to compare against the first.
Description

Compares if two objects refer to the same.

	var target : Collider;
	function OnTriggerEnter (trigger : Collider) {
		if (trigger == target)
			print("We hit the target trigger");
	}
using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour {
    public Collider target;
    void OnTriggerEnter(Collider trigger) {
        if (trigger == target)
            print("We hit the target trigger");
        
    }
}
import UnityEngine
import System.Collections

public class Example(MonoBehaviour):

	public target as Collider

	def OnTriggerEnter(trigger as Collider) as void:
		if trigger == target:
			print('We hit the target trigger')

Get early out if there is no target.
	var target : Transform;
	function Update () {
		// Early out if the target is gone
		if (target == null)
			return;
	}
using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour {
    public Transform target;
    void Update() {
        if (target == null)
            return;
        
    }
}
import UnityEngine
import System.Collections

public class Example(MonoBehaviour):

	public target as Transform

	def Update() as void:
		if target == null:
			return

Be careful when comparing with null.

e.g.
        GameObject go = new GameObject(); 
Debug.Log (go == null); // false

Object obj = new Object(); Debug.Log (obj == null); // true
Instatiating a GameObject adds it to the scene so it's completely initialized (!destroyed). Instantiating a simple UnityEngine.Object has no such semantics, so the it stays in the 'destroyed' state which compares true to null.