前一篇文章讲解了几种常见的属性定义方式,基本上看看就会了。
本篇将补充另外几个开发中会使用到的属性定义。

音频剪辑

音频剪辑是一个比较特殊的节点,它是一个资源,本质上其实是一个音频的url。

@property({type: cc.AudioClip,displayName:"背景音乐"
})
bgm: cc.AudioClip = null;

节点数组

定义一个数组,元素是cc.Node类型,同类型节点数组。

    @property([cc.AudioClip])effects: cc.AudioClip[] = [];

但是这样定义,引擎会给你报个警告。

当然我一般都不care这个警告,如果有强迫症的话可以改一下:

    @property({type: [cc.AudioClip],displayName: "音效"})effects: cc.AudioClip[] = [];

属性面板显示如下:

互斥面板

这是一个比较高级的用法,结合上一篇的性别选择下拉框,还有两个相关属性:年龄和身高。因为女人的年龄是比较敏感的,如果性别为女,则不显示年龄属性。效果如下:

实现这个效果,需要使用属性定义的visible关键字,官网文档只告诉我们这个字段是一个boolean,为true时显示,false则隐藏。
其实还可以是一个函数:

// 声明滑动条,不加type就是浮点值@property({type: cc.Integer,min: 0,max: 120,step: 1,slide: true,displayName: "年龄",visible() {return this.sex != SexyType.女;}})age = 32;

自定义类型

如果我们引用一个自定义类型,该怎么定义属性呢:

自定义类型虽然可以使用TS原生的Class,但是官方都说了,我们CCClass更丰富强大,所以我们使用CCClass。记住要点:

  • 定义一个CCClass的子类,不需要继承Component
  • 默认值使用类的实例对象

自定义玩家类

// Author:lerry(大掌教)
// 微信公众号ID:darkpalm
// Q群:704391772const { ccclass, property } = cc._decorator;// 使用注解定义一个CCClass,名称就是Player,括号内是参数
// 如果不传参,将会有意想不到的意外
@ccclass("Player")
export default class Player {@property({displayName: "昵称"})nickName = "大掌教";@property({displayName: "Q群"})qGroup = "704391772";
}

在MainGame.ts中引入这个类,增加自定义类的属性

@property(Player)
player: Player = new Player();

属性面板显示如下:
完整的属性面板如下:

上一篇加上这一篇,基本上讲完了TS属性定义的所有要点。还有什么疑问可以联系我。

关注我的公众号,回复【ts属性】可以获取源码

公众号ID:darkpalm

Cocos技术派 | TS版属性面板定义高级用法相关推荐

  1. Cocos技术派 | TS版各种属性声明详解

    先来看一段代码: cc.Class({extends: cc.Component,properties: {userID: 20,userName: "Foobar"} }); 这 ...

  2. cocos creator 安卓原生平台环境_竞技对抗小游戏单挑篮球开发历程 | Cocos技术派第12期...

    本文来自于"Cocos 荣耀讲师"征稿活动第1期,最先发表于 Cocos 中文社区,作者 ID:蟹老板,2017年加入社区,文章作品包括<猎头专家的开发历程>等. Co ...

  3. 3D 小游戏《欢乐贪吃龙》关键技术盘点 | Cocos 技术派第13期

    <欢乐贪吃龙>是由 SK2GAME 基于 Cocos Creator v2.2 研发的一款 3D 休闲小游戏,游戏画面卡通精美,玩法简单,玩家将扮演一只"贪吃龙",在 ...

  4. Cocos技术派 | 3d人物渲染详细教程

    文章目录 前言 3d系统基础 FBX模型导入 配置模型参数 相机分组 2D相机设置 添加UI节点 添加3D节点 设置灯光 设置平台接收阴影 设置3D相机 3D场景编辑器 设置模型材质 设置模型产生阴影 ...

  5. Cocos技术派 | 导入FBX模型实现真3d效果

    文章目录 前言 工程介绍 导入模型 源码 前言 Cocos Creator一直以来都是一个2D游戏引擎,并且致力于H5游戏开发领域.很多同学不满足于开发2D游戏,想尽办法搞一些3D效果,比如自己接入t ...

  6. Cocos 技术派第4期 | 实时竞技小游戏技术实现分享

    在前阵子举办的 Cocos 开发者沙龙上,来自华夏乐游 BigRoad 工作室的客户端主程李清,为现场开发者分享了其团队制作的实时竞技小游戏<保卫豆豆-欢乐枪战>的技术实现方案,深受开发者 ...

  7. Cocos 技术派 05 | Camera 摄像机详解

    往期技术派文章: 第01期<野蛮人大作战>从开发到上线 第02期 Cocos Creator 2.0 摄像机的灵活运用 第03期 插件推荐 CC_inspector + 第04期 实时竞技 ...

  8. Cocos技术派 |《野蛮人大作战》H5项目从开发到上线

    Cocos 公众号近半年来邀请了多位优秀的开发者进行案例分享,比如梦加<足球弹弹乐>.华夏乐游<欢乐枪战>.腾讯<乱斗之星>等,受到很多读者的喜爱.基于此,我们决定 ...

  9. Cocos 技术派:实时竞技小游戏技术实现分享

    前言 李清是来自华夏乐游BigRoad工作室的客户端主程,今日他将带来其团队制作的实时竞技小游戏<保卫豆豆-欢乐枪战>的技术实现方案. 游戏简介 <保卫豆豆-欢乐枪战>是一款北 ...

最新文章

  1. canvas 轮播图片
  2. 计算机换色带技巧,色带盒怎么更换 色带盒更换安装方法【图文教程】
  3. [tyvj1935 Poetize3]导弹防御塔 (二分图多重匹配)
  4. 云服务器上安装jboss_jboss的使用和安装
  5. 计算机机房坏境设施演练,计算机机房环境设施应急演练方案
  6. python基础数据类型一(元祖)
  7. Java正则判断中文字符串句型_NLP中文句子类型判别和分类实现
  8. updatedb命令
  9. 借助URLOS快速安装织梦cms
  10. mac新建react脚手架
  11. 去哪网实习总结:JavaWeb中文传參乱码问题的解决(JavaWeb)
  12. 无线充U型超声波电动牙刷方案开发
  13. 反转一个英语句子c++
  14. Python原生爬虫 --- 50行代码爬取某直播网站主播名和人气值
  15. P5385 [Cnoi2019]须臾幻境 LCT+主席树 维护区间联通块个数
  16. 大神f1 刷原生android,兼容多种ROM包 酷派大神F1堪称刷机神器
  17. 牛年学“牛”词:关于牛的短语和句子
  18. 赵小楼《天道》《遥远的救世主》深度解析(55)王庙村扶贫和格律诗事件的关键人物:冯世杰
  19. 一个人最好的生活状态
  20. Spark优化-开启动态资源分配

热门文章

  1. 电脑路由器,怎么把自己的电脑变成路由器
  2. USB3.0传输数据、解析处理和帧率计算
  3. 智能语义搜索引擎:一站式检索服务、打通数据壁垒、充分挖掘数据价值 | 百万人学AI评选
  4. pytorch中num_workers详解
  5. windows server 2008磁盘管理
  6. Tushare库之获取股票列表接口
  7. 惠普1005w打印机使用说明书_首款能充粉的打印机来了 惠普1005w一体机评测
  8. 博士申请 | 澳大利亚麦考瑞大学王岩教授招收机器学习方向全奖博士生
  9. word文件和扩展名不匹配的解决办法,亲测有效
  10. 小猿学python_小猿圈详解小白如何学习Python网络爬虫