场景内的物体可以在外部控制吗

目前遇到一个问题,我想把游戏场景和html元素分开,像下面这样:


右边是游戏场景,左边是普通的html button组成的操作面板,请问如何通过操作左边的按钮来控制场景中的物体呢?在Unity里这种方式是可行的,不知道cocos有没有提供相关的API?

Cocos没有提供相关API,你想要的效果可以利用全局变量实现。把与控制相关的类实例直接挂window上,然后在html代码里使用对应全局变量。多种方式都能实现你想要的效果。简单点的话的就像下面这样:

  window.playerController = 控制类实例; // 游戏代码里赋值给window

  window.playerController && window.playerController.moveLeft(); // HTML页面里使用window上的全局变量

非常感谢你的指点,我去试试

外部应该可以获取到 cc 全局变量。
游戏内通过 cc.director.on() 绑定回调,外部通过 cc.director.emit()发送 消息,就可以实现控制了。
这样做耦合度比较低,适合你这样操作。

感谢你的解答,像这类文档怎么好像找不到?请问在什么地方能看到?

API文档可以看这个:
https://docs.cocos.com/creator/api/zh/classes/Director.html?h=director

谢谢你的回答,不过我已经打算放弃cocos了,坑太多:sweat_smile:

不会吧,坑太多,做小项目我几乎没遇到过什么坑(一些小坑也不影响)?

2d可能没什么问题,但是3d真的不行啊