Multiple functions to establish a fallback value for a property until not null
This seems to be a textbook case for the null coalescing operator ??

Head = GetComponent&lt;Camera&gt;() ?? GetComponentInChildren&lt;Camera&gt;() ?? Camera.main;


You also (probably) don't need to prefix with this

Edit:

If the null coalescing operator doesn't work (which is a massive shame) why not create an extension method?

public static T IfNullThen&lt;T&gt;(this T obj, Func&lt;T&gt; factory) where T : class
{
    return obj != null ? obj : factory();
    // or
    // return obj == null ? factory() : obj;
}


then you can do:

Head = GetComponent&lt;Camera&gt;().IfNullThen(GetComponentInChildren&lt;Camera&gt;).IfNullThen(() =&gt; Camera.main);


Unfortunately I'm on my mac so I don't have a compiler but I think it should work :)