Viv*_*vek 3 c# unity-game-engine
我为 PC 和移动设备(如 android、ios)创建了游戏。我在屏幕上添加了一些游戏组件来帮助移动用户导航播放器。
问题是游戏手柄也出现在 PC 版本上。
如何隐藏此类组件,使其不显示在游戏的非移动平台上。
检测平台是否不是具有Application.isMobilePlatform
或Awake
功能的移动设备Start
,然后停用操纵杆游戏对象。确保操纵杆 UI 内容有一个父 GameObject。您应该停用该父游戏对象。
public GameObject joyStick;
void Awake()
{
if (!Application.isMobilePlatform)
{
joyStick.SetActive(false);
}
}
Run Code Online (Sandbox Code Playgroud)
再次,禁用 GameObject,而不是组件。这还应该禁用子对象和附加到它们的脚本。
编辑:
谢谢。我还希望将操纵杆脚本、游戏对象排除在非移动平台构建中。这也管得着吗?
否。如果您希望将其排除在场景中,那么在为操纵杆创建父对象后,将其设为预制件,然后从场景或“层次结构”选项卡中将其删除。仅当这是移动设备时,您才可以实例化预制件。
public GameObject canvas;
public GameObject joyStickPrefab;
void Awake()
{
if (Application.isMobilePlatform)
{
Instantiate(joyStickPrefab, canvas.transform, false);
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,预制件仍将包含在构建中,但不会出现在场景中或加载到内存中,除非它是移动设备。实际上没有办法将预制件或资产排除在构建之外。您可以使用 Unity 的预处理器指令排除基于平台的脚本,但不能排除游戏杆中 UI 项目的资产。