创建场景资源后,可以选中场景,然后在右边的属性检查器中勾选自动释放资源,然后保存就可以在加载其他场景的时候自动把资源释放掉了。

const {ccclass, property} = cc._decorator;
@ccclass
export default class Helloworld extends cc.Component {
onclick()
{
cc.director.loadScene("123",this.onLoadFinish)
}
onLoadFinish()
{
console.log("加载123场景完成")
}
}
const {ccclass, property} = cc._decorator;
@ccclass
export default class SceneManager extends cc.Component {
start () {
//使一个根节点常驻内存
cc.game.addPersistRootNode(this.node)
}
onDestroy()
{
cc.game.removePersistRootNode(this.node) //取消节点常驻内存
}
}
const {ccclass, property} = cc._decorator;
@ccclass
export default class Helloworld extends cc.Component {
@property(cc.SpriteFrame)
sprite:cc.SpriteFrame = null
@property(cc.Prefab)
prefab:cc.Prefab = null
start(){
let node = new cc.Node("Sprite") //创建节点
let sp = node.addComponent(cc.Sprite) //添加组件
sp.spriteFrame = this.sprite
node.parent = this.node
let node_clone = cc.instantiate(node) //克隆节点
node_clone.parent = this.node
node_clone.x = 100
let pre = cc.instantiate(this.prefab) //实例化预设体
pre.parent = this.node
pre.y = 200
node_clone.destroy() //节点销毁
}
}
const {ccclass, property} = cc._decorator;
@ccclass
export default class Helloworld extends cc.Component {
onLoad(){} //在节点首次激活时调用 一般用来获取其他组件
start(){} //在第一次执行update前调用 一般用于初始化中间数据
update(dt){} //在组件enable状态下每帧执行
lateUpdate(){} //每帧在update执行完后执行
onEnable(){} //组件被激活时调用
onDisable(){} //组件被禁用时调用
onDestroy(){} //组件被销毁时调用
}
const {ccclass, property} = cc._decorator;
@ccclass
export default class Helloworld extends cc.Component {
@property(cc.Node)
nodeVar:cc.Node = null
start () {
this.node.active = false //设置激活状态
this.node.parent = this.nodeVar //设置父节点 等价于下面两行
this.node.removeFromParent(false)
this.nodeVar.addChild(this.node)
//更改位置
this.node.x = 100
this.node.y = 100
this.node.setPosition(100,100)
this.node.setPosition(cc.v2(100,100))
this.node.position = cc.v2(100,100)
//更改旋转
this.node.rotation = 90
this.node.setRotation(90)
//更改缩放
this.node.scaleX = 2
this.node.scaleY = 2
this.node.setScale(2,2)
//更改节点尺寸
this.node.setContentSize(100,100)
this.node.setContentSize(cc.size(100,100))
this.node.width = 100
this.node.height = 100
//更改节点锚点位置
this.node.anchorX = 1
this.node.anchorY = 0
this.node.setAnchorPoint(1,0)
}
}
cc.Class({
extends: cc.Component,
properties: {
label:{type:cc.Label,default:null},//可以找属性检查器中赋值 组件和节点都可以
text:'hello'
},
start () {
this.label.string = this.text
var a = this.node //获取到当前节点
a.x = 100
var can = this.getComponent(cc.Canvas)
can = this.getComponent("Canvas")
can = this.node.getComponent(cc.Canvas)
var nodes = this.node.children //获取节点下的所有子节点
console.log("数量:" + nodes.length)
var node = this.node.getChildByName("NodeName")//根据名字查找子节点
var node2 = cc.find("NodeName/Xixi",this.node) //在指定节点下查找子节点
var node3 = cc.find("Canvas/NodeName") //从根节点开始全局查找
},
});import Helloworld from './HelloWorld' //引入其他脚本
const LEVEL = cc.Enum({EAST:1,HARD:2}) //定义枚举
cc.Class({
extends: cc.Component,
properties: {
intVar:0,//整形
floatVar:0,//浮点数
boolVar:false,//布尔值
nodeVar:{
default:null,
type:cc.Node //节点
},
nodeArrVar:{
default:[],
type:[cc.Node]//节点数组
},
labelVar:{
default:null,
type:cc.Label//Label
},
prefabVar:cc.Prefab,//预设体
ver2Var:new cc.Vec2(),
hVar:{
default:null,
type:Helloworld//自定义脚本组件
},
enumVar:{
default:LEVEL.EAST,
type:LEVEL//自定义枚举
}
},
});