AnimatorTransitionInfo.nameHash == Animator.StringToHash() is not working

I saw a video where someone used this to check when a animation was finished, but when I tried it nothing happend.

    private Animator anim;
    private AnimatorTransitionInfo armsTransitionInfo;
    
    void Update () {
    		armsTransitionInfo = anim.GetAnimatorTransitionInfo(1);
    }
    
    void Reload () {
    		reloading = true;
    		anim.SetTrigger("Reloading");
    
    	if(armsTransitionInfo.nameHash == Animator.StringToHash("Arms.Reload ->Arms.Weapon Hold")) {
    			FinishReload();
    		}
    	}
    	
    	void FinishReload () {
    		weapons[currGun].ammo += weapons[currGun].magSize;
    		weapons[currGun].extraAmmo -= weapons[currGun].magSize;
    		reloading = false;
    }

The reload animation starts but the FinishReload function never gets called.

Since you are telling anim.GetAnimatorTransitionInfo(1); to get transition info from layer 1 which is Arms so you dont have to mention it inside transition string you can do

if(armsTransitionInfo.nameHash == Animator.StringToHash(“Reload → Weapon Hold”)) {
FinishReload();
}
}