Cocos - это большая система, основанная на одиночном коде, которая может не понравиться некоторым разработчикам, но часто используется в приложениях Cocos и является фундаментальной архитектурой платформы. Если у вас есть одна основная сцена и много последующих слоев, добавленных к этой сцене, и вы хотите, чтобы элементы управления из одного слоя влияли на спрайты или логику на других слоях, в действительности нет ничего плохого в том, чтобы сделать вашу главную сцену одиночной и отправить информацию с джойстика слой обратно на сцену для обработки других слоев или спрайтов. Я делаю это все время, и эта техника используется в бесчисленных уроках Cocos в книгах и онлайн, так что вы можете почувствовать, что не нарушаете слишком много правил, если вы делаете это таким образом (и это также довольно легко сделать).
Если вместо этого вы решите использовать указатели в одном слое для отправки данных в другие слои, это может доставить вам массу неприятностей, поскольку одному узлу никогда не следует владеть другим узлом, с которым у него нет определенных отношений родитель-потомок , Это может привести к сбоям и проблемам с собственными методами очистки Cocos при последующем удалении сцен и, возможно, к утечке памяти. Вместо этого вы могли бы использовать слабую ссылку в таком случае, но это все еще зависит от одного слоя, ожидающего, что другой слой всегда будет вокруг, что может быть не так.
Отправка данных обратно на главную игровую сцену для последующей отправки и использования соответствующим образом действительно эффективна.