best practice for using referred scripts

im still new to unity and have been using this method to gain access to variables ive been using as conditions, im wondering though if this is a bad practice, if so what should i be doing? and if not, how about when i have many elements in a “Game Controller” type GameObject.

another thing im concerned about is having everything in my update function, a friend suggested making a function and calling it in update, but it seemed that it would do the same thing, just in a relatively more organized way? am i wrong about my assumption? does the computer have a better way of dealing with things when theyre put in functions down the bottom and called like in my example?

public GameObject otherGameObject;
	OtherGameObjectScript otherGameObjectScript;

void Update () {

		if (otherGameObjectScript.isBool)
		{
            DoStuff();
        }
           else
        {
        SetStuff();
        }

Generally, when referencing other scripts you can do it this way.

The only time I have found the need to call an update loop within another method was when my script did not derive from MonoBehaviour. It may be possible that you want to control the specific order that Update is called on several scripts - which would make sense to force control on how update is call. Or you could use Unity’s Script Execution Order thing.

As for performance, I believe the actual update call is slightly slower than a direct function calls - but not really enough to worry as it is a very small difference. I can’t seem to find any info on how the monobehaviour methods are called, so if someone could drop in a link it would be appreciated!

Also, as for using methods on update - the general logic is to create functions that can be reused. This might be helpful

Game design patterns are also especially helpful in determining how to organize the actual code.