Cocos Creator 定义属性指南(JS和TS)

这篇具有很好参考价值的文章主要介绍了Cocos Creator 定义属性指南(JS和TS)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

简单说明

1.TS写法

2.JS写法


简单说明

  • 这是一个Cocos Creator 如何定义脚本属性的指南。
  • 我这边整理了两个版本,JS和TS,如果还有其他方式,欢迎您的留言。
  • 对我个人来说,刚开始写枚举和数组的时候会有点不习惯。还经常容易忘记怎么写。
  • 在cocos creator 3.x 中官方主推的是:Typescript。
  • 在cocos creator 2.x 中使用JavaScript的项目会比较多。

1.TS写法

首先创建一个TsCase.ts的脚本,然后复制下方即可。

代码如下(示例):文章来源地址https://www.toymoban.com/news/detail-632221.html

const { ccclass, property } = cc._decorator;
// 枚举-1
enum EnumType_1 {
    val_1,
    val_2,
    val_3,
}
// 枚举-2
var EnumType_2 = cc.Enum({
    val_1: 1,
    val_2: 2,
    val_3: 3,
})
@ccclass
export default class TsCase extends cc.Component {
    // 大括号写法
    // ------------------------------------------------------------
    //定义枚举
    @property({
        type: cc.Enum(EnumType_1),
        displayName: '常用的定义枚举',
        tooltip: ''
    })
    enum_type_1: EnumType_1 = EnumType_1.val_1
    @property({ type: EnumType_2 })
    enum_type_2 = EnumType_2.val_1
    //定义数组
    @property({ type: [cc.Node] })
    array_2: Array<cc.Node> = new Array(3);
    //定义类型
    @property({ type: cc.Node })
    node_2: cc.Node = null;    // 定义节点类型

    // 简单定义
    // ------------------------------------------------------------
    @property([cc.Node])
    array_1: cc.Node[] = [];    // 定义数组
    @property(cc.Node)
    node_1: cc.Node = null;    // 定义节点类型
    @property
    num_1: number = 1;           // 定义整数类型
    @property
    str_1: string = 'str_1';     // 定义字符类型
    @property
    flag_1: boolean = true;       // 定义布尔类型

}

2.JS写法

首先创建一个JsCase.js脚本文件,然后复制下方即可。

代码如下(示例):

// 枚举-1
var EnumType_1 = cc.Enum({
    val_1: 1,
    val_2: 2,
    val_3: 3,
})
// 枚举-2
var EnumType_2 = {
    val_1: 1,
    val_2: 2,
    val_3: 3,
}
// 将 cc.Class 创建的类赋值给 JsCase 变量
var JsCase = cc.Class({
    // 设置类名
    name: "JsCase",
    // 继承类(只有继承cc.Component才能挂载到场景的节点上)
    extends: cc.Component,
    // 定义属性
    properties: {
        // 标准定义-基本用法
        // ------------------------------------------------------------
        // 定义一个数组节点
        array: {
            default: [], // 一定要有默认值
            type: [cc.Node], // 括号中间定义数组类型
            displayName: "数组节点类型", // displayName:在 属性检查器 面板中显示成指定名字
            tooltip: "请定义数组的长度", // tooltip:在 属性检查器 面板中添加属性的 Tooltip
            // visible:设为 false 则不在 属性检查器 面板中显示该属性
            // serializable:设为 false 则不序列化(保存)该属性
        },
        // 定义一个枚举类型 - 1
        enum_type_1: {
            default: EnumType_1.val_1,
            type: EnumType_1,
        },
        // 定义一个枚举类型 - 2
        enum_type_2: {
            default: EnumType_2.val_1,
            type: cc.Enum(EnumType_2),
        },
        // 定义一个节点类型
        node_3: {
            default: null, // default:设置属性的默认值,这个默认值仅在组件 第一次 添加到节点上时才会用到
            type: cc.Node, // type:限定属性的数据类型,详见 CCClass 进阶参考:type 参数
        },
        // 定义一个整数类型
        num_3: {
            default: 3,//默认值
        },
        // 定义一个字符类型
        str_3: {
            default: 'str_3',
        },
        // 定义一个布尔类型
        flag_3: {
            default: true,
        },
        // ------------------------------------------------------------

        // 该方式仅适用于:基本数据类型:整数-number、字符-string、布尔-boolean
        // ------------------------------------------------------------
        // 简单定义-2
        node_2: {
            default: null,
            type: cc.Node// 定义节点类型
        },

        // 简单定义-1
        node_1: cc.Node,    // 定义节点类型
        num_1: 1,           // 定义整数类型
        str_1: 'str_1',     // 定义字符类型
        flag_1: true,       // 定义布尔类型
        // ------------------------------------------------------------

    },
});

到了这里,关于Cocos Creator 定义属性指南(JS和TS)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • cocos creator踩坑记录

    cocos creator踩坑记录 removeFromParent 和removeAllChildren cocos2dx直接从父节点移除并回收内存 creator 则只是从父节点移除,回收内存则需要使用destory,creator 使用destroy并不会立即在父节点中移除该节点,会延后执行。 官方文档地址 模拟器 Android APP点击EditBox报错 Function: JSB_showInputBo

    2024年02月15日
    浏览(29)
  • Cocos Creator:AR 交互

    推荐:将 NSDT场景编辑器

    2024年02月09日
    浏览(55)
  • Cocos Creator 使用protobufjs

    在使用cocos creator开发微信小程序的时候,服务器是使用的skynet,服务器与前端的通讯想使用protobuf,网上有文档,但不多,经过一天的奋斗,终于是让cocos creator能够使用protobuf 官网文档参考: https://www.npmjs.com/package/protobufjs https://docs.cocos.com/creator/3.5/manual/zh/scripting/modules/example.html p

    2024年02月05日
    浏览(36)
  • cocos creator 鼠标画笔|画线

    cocos creator 版本使用 至少适配版本2.3.2以上 案例: 简要思路:MOUSE_MOVE事件和Graphics组件实现 前端也可以通过canvas和mousemove事件实现,原理一致 具体步骤如下: 1.添加节点Node 2.在Node节点上绑定 组件Graphics 3.添加下方脚本drawcontroll.ts 4.注意Node节点的锚点和位置(如果不想要这个

    2024年02月11日
    浏览(28)
  • FariyGUI × Cocos Creator 入门

    程序员向的初探Cocos Creator结和FairyGUI的使用,会比较偏向FairyGUI一点,默认各位读者都熟练掌握Cocos Creator以及js/ts脚本编写。 初探门径,欢迎大佬指教,欢迎在评论区或私信与本人交流,谢谢! 都不需要科学上网,非常友好。 下载fgui:https://www.fairygui.com/ 下载Cocos Creator并安

    2024年02月22日
    浏览(29)
  • cocos creator 节点的镜像反转

    自己在做横版小游戏的时候,想左右运动时精灵图直接旋转,但是一直搞不懂那个旋转,后面才发现2d情况下,旋转时没有z轴,就只能是原地转圈上下颠倒,而想要镜像反转的话就需要开启3d模式了 如果是在编辑器上的话直接点击左上角最右边的3D按钮就行了 如果是想在代码

    2024年02月12日
    浏览(47)
  • cocos creator 学习第一篇

    unity 编程语言主要为c# 早期cocos2d 等用c++ 或者lua cocos creator 编程语言主要为js 所以cocos 适合h5 小游戏,而且跨平台性更好,unity性能可能更好 cocos creator简介 cocos2d-python cocos 1.x 2d cocos 2.x 也是2d 为了不影响2d版本,单独出了3d版本,只有一个版本 cocos 3.x 在cocos 3d基础上 又将2d加

    2024年02月04日
    浏览(29)
  • Cocos Creator 中的assembler那点事

    一:Assembler的来龙去脉 二:自定义一个渲染组件(使用自定义的assembler挂载) 之前的文章中提到和使用过assembler相关的技术,但是现在看来还是理解的不是很到位, 1: 首先看看那assembler是如何绑定到渲染组件的,随便找到一个渲染组件,比如说老生常谈的Sprite组件   cocos2d

    2024年02月08日
    浏览(41)
  • 详解 Cocos Creator 如何使用websocket

    我在看B站cocos教程Cocos Creator零基础小白超神教程P69集遇到socketio无法正常使用的问题。经过百度,才了解到现在cocos creator实现客户端和服务器之间的双向通信是通过WebSocket 协议。WebSocket 是一种非常常用的网络通信协议,本文将详细讲解 Cocos Creator 如何使用 WebSocket,包括 W

    2024年02月07日
    浏览(32)
  • Cocos Creator 世界坐标转屏幕坐标

    Cocos creator某一坐标转屏幕坐标(screen position),以前都是屏幕坐标转世界坐标。 先上代码为敬(只是提供一种思路,有更好的实现和建议欢迎留言) 以上是获取屏幕坐标的代码,代码简陋只提供一种思路,不同机型测试显示的内容都会正确覆盖在panel上。

    2024年02月14日
    浏览(24)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包