Не уверен на 100%, что я понимаю, что вы подразумеваете под «скриптами», но если мы говорим о компонентах MonoBehaviour, прикрепленных к GameObjects в иерархии объектов, то вы можете сделать что-то подобное изнутри C
:
transform.root.GetComponent<A>.someFunction(this.value_to_pass_from_C_to_A)
Если мы не говорим о компонентах, прикрепленных к GameObjects, то вы можете рассмотреть возможность генерации c# событий из C объектов и сделать так, чтобы ваши объекты A подписывались на них. Или вы можете передать функцию обратного вызова из A в B, когда A создает экземпляр B, а затем ту же самую функцию из B в C, когда B создает C. C может вызвать эту функцию, когда хочет передать объект обратно в A.