节点和脚本的关系

有个疑问,关于官方给的吃星星例子里面的。那个Game.js里面有声明一个变量是Player类型的,这个Player类型应该是一个脚本里面的类型。但是在creator里面往那个位置里面拖东西的时候,却为什么要拖一个节点Player进去呢?那个节点应该是个Node类型吧?是因为这个Node上面挂了个Player的脚本吗?这样Node就成了Player类型了?

不是因为Node变成了Player类型,而是这个Node拥有Player组件。Player.js只有挂在节点上成为组件才有意义。这样拖动之后Game.js中this.player就指向了场景中那个节点上的Player组件。如果Game.js中player的类型声明为cc.Node,同样地拖动之后,Game.js中的this.player就指向了那个节点本身,要获取它上面的Player组件还得this.player.getComponent(“Player”)。

1赞