what is this definition?

protected override void Update()
if (this.CurrentState == GameCharacter.State.Dead)
if (this.CurrentState == GameCharacter.State.Idle || this.CurrentState == GameCharacter.State.StuckToCeiling || (this.CurrentState == GameCharacter.State.Sliding || this.CurrentState == GameCharacter.State.Glued))
float num = Mathf.Sign(PlayerController.Instance.BoxCenter.x - this.transform.position.x);
if ((double) num == (double) this.direction.x)
if (this.CurrentState != GameCharacter.State.StuckToWall && this.CurrentState != GameCharacter.State.StuckToCeiling)
this.CurrentState = GameCharacter.State.Aiming;
this.direction.x = num;
this is A PART of the script named Goombase.cs. what is this definition? ‘this.transform.position.x’ , ‘transform’ is from Compoment [from metadata] , ‘position’ is from Transform [from metadata], ‘x’ from Vector3 [from metadata] . what is from metadata? it is not like normally connect to a class in other script.

This is not the same Update() that is normally associated with MonoBehaviours because the MonoBehaviour Update() cannot be marked with override. The class this function belongs to must extend some other class that has an abstract/virtual Update() method and is calling that base class’ Update() method.

It looks a bit like the kind of thing you’d do in a hierarchical state machine where, for example: if no valid transition is found for the player in the “idle” state, it checks for a transition in the “grounded” superstate (the base class). And if still nothing is found, it might look at the “alive” supersuperstate, etc.