cocoscreater预制体prefab全攻略


什么是预制体,字面意思,还未使用前预先制作好的节点资源,属性等同于普通节点,可以看做一个预先制作还没展示出来的普通的节点

怎么创建预制体

1.在层级管理器处先创建普通的节点,然后把这个节点拖拽到资源管理器的assets文件夹下,出于方便管理会统一建立一个Prefab文件夹下统一存放预制体
在这里插入图片描述
双击预制体节点可以看到它呈现蓝色,这时候就可以删除还留在场景场景里的节点,需要使用该节点时,通过预制体创建
在这里插入图片描述
这时候可以看到属性检查器里的属性,和普通节点一致
在这里插入图片描述

预制体的作用

1.批量创建相同类型的节点

本质上来说就是使用预制体创建一个模板,然后通过复制这个预制体模板批量创建

第一步:批量创建节点放入对象池

 @property(cc.Prefab)
 prefab:cc.Prefab = null;
 // 在属性管理器上声明一个预制体类型,用于在属性管理器里挂载定义好的预制体
 
 @property(cc.NodePool)
 nodePools:cc.NodePool = null;
 // 声明一个对象池用于存放通过预制体创建对象,一次性使用预制体创建足够用的相同类型节点,然后放入对象池,需要使用时拿出来,不需要时放回,避免长时间大量创建和销毁节点

 for(let i:number = 0; i < 100; i++){
   
 	//创建100个节点
 	let node:cc.Node = cc.instantiate
  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要自动生成Cocos Creator预制,你需要使用Cocos Creator提供的API和Node.js的文件系统模块。首先,你需要创建一个场景,添加需要的节点和组件,并保存为一个场景文件。然后,你可以使用Node.js读取这个场景文件,并使用Cocos Creator提供的API获取节点和组件,创建预制并保存为一个预制文件。这里是一个基本的Node.js代码示例: ```javascript const fs = require('fs'); const { cc } = require('cocos2d'); // 加载场景文件 cc.director.loadScene('myScene', (err, scene) => { if (err) { console.log(err); return; } // 获取节点和组件 const myNode = cc.find('Canvas/MyNode', scene); const sprite = myNode.getComponent(cc.Sprite); const label = myNode.getComponent(cc.Label); // 创建预制 const prefab = cc.instantiate(myNode); prefab.name = 'MyPrefab'; prefab.removeComponent(cc.Widget); prefab.removeComponent(cc.Layout); // 保存预制到文件 fs.writeFileSync('MyPrefab.prefab', cc.AssetLibrary.serialize(prefab)); }); ``` 这段代码假设你已经创建了一个名为`myScene`的场景文件,并在场景中添加了一个名为`MyNode`的节点,它包含一个`cc.Sprite`和一个`cc.Label`组件。它使用`cc.director.loadScene`方法加载场景文件,并在回调函数中获取节点和组件。然后,它使用`cc.instantiate`方法创建预制,并通过`removeComponent`方法删除不需要的组件。最后,它使用Cocos Creator提供的序列化方法,将预制保存为`MyPrefab.prefab`文件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值