Cocos技术派 | TS版属性面板定义高级用法
前一篇文章讲解了几种常见的属性定义方式,基本上看看就会了。
本篇将补充另外几个开发中会使用到的属性定义。
音频剪辑
音频剪辑是一个比较特殊的节点,它是一个资源,本质上其实是一个音频的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版属性面板定义高级用法相关推荐
- Cocos技术派 | TS版各种属性声明详解
先来看一段代码: cc.Class({extends: cc.Component,properties: {userID: 20,userName: "Foobar"} }); 这 ...
- cocos creator 安卓原生平台环境_竞技对抗小游戏单挑篮球开发历程 | Cocos技术派第12期...
本文来自于"Cocos 荣耀讲师"征稿活动第1期,最先发表于 Cocos 中文社区,作者 ID:蟹老板,2017年加入社区,文章作品包括<猎头专家的开发历程>等. Co ...
- 3D 小游戏《欢乐贪吃龙》关键技术盘点 | Cocos 技术派第13期
<欢乐贪吃龙>是由 SK2GAME 基于 Cocos Creator v2.2 研发的一款 3D 休闲小游戏,游戏画面卡通精美,玩法简单,玩家将扮演一只"贪吃龙",在 ...
- Cocos技术派 | 3d人物渲染详细教程
文章目录 前言 3d系统基础 FBX模型导入 配置模型参数 相机分组 2D相机设置 添加UI节点 添加3D节点 设置灯光 设置平台接收阴影 设置3D相机 3D场景编辑器 设置模型材质 设置模型产生阴影 ...
- Cocos技术派 | 导入FBX模型实现真3d效果
文章目录 前言 工程介绍 导入模型 源码 前言 Cocos Creator一直以来都是一个2D游戏引擎,并且致力于H5游戏开发领域.很多同学不满足于开发2D游戏,想尽办法搞一些3D效果,比如自己接入t ...
- Cocos 技术派第4期 | 实时竞技小游戏技术实现分享
在前阵子举办的 Cocos 开发者沙龙上,来自华夏乐游 BigRoad 工作室的客户端主程李清,为现场开发者分享了其团队制作的实时竞技小游戏<保卫豆豆-欢乐枪战>的技术实现方案,深受开发者 ...
- Cocos 技术派 05 | Camera 摄像机详解
往期技术派文章: 第01期<野蛮人大作战>从开发到上线 第02期 Cocos Creator 2.0 摄像机的灵活运用 第03期 插件推荐 CC_inspector + 第04期 实时竞技 ...
- Cocos技术派 |《野蛮人大作战》H5项目从开发到上线
Cocos 公众号近半年来邀请了多位优秀的开发者进行案例分享,比如梦加<足球弹弹乐>.华夏乐游<欢乐枪战>.腾讯<乱斗之星>等,受到很多读者的喜爱.基于此,我们决定 ...
- Cocos 技术派:实时竞技小游戏技术实现分享
前言 李清是来自华夏乐游BigRoad工作室的客户端主程,今日他将带来其团队制作的实时竞技小游戏<保卫豆豆-欢乐枪战>的技术实现方案. 游戏简介 <保卫豆豆-欢乐枪战>是一款北 ...
最新文章
- canvas 轮播图片
- 计算机换色带技巧,色带盒怎么更换 色带盒更换安装方法【图文教程】
- [tyvj1935 Poetize3]导弹防御塔 (二分图多重匹配)
- 云服务器上安装jboss_jboss的使用和安装
- 计算机机房坏境设施演练,计算机机房环境设施应急演练方案
- python基础数据类型一(元祖)
- Java正则判断中文字符串句型_NLP中文句子类型判别和分类实现
- updatedb命令
- 借助URLOS快速安装织梦cms
- mac新建react脚手架
- 去哪网实习总结:JavaWeb中文传參乱码问题的解决(JavaWeb)
- 无线充U型超声波电动牙刷方案开发
- 反转一个英语句子c++
- Python原生爬虫 --- 50行代码爬取某直播网站主播名和人气值
- P5385 [Cnoi2019]须臾幻境 LCT+主席树 维护区间联通块个数
- 大神f1 刷原生android,兼容多种ROM包 酷派大神F1堪称刷机神器
- 牛年学“牛”词:关于牛的短语和句子
- 赵小楼《天道》《遥远的救世主》深度解析(55)王庙村扶贫和格律诗事件的关键人物:冯世杰
- 一个人最好的生活状态
- Spark优化-开启动态资源分配
热门文章
- 电脑路由器,怎么把自己的电脑变成路由器
- USB3.0传输数据、解析处理和帧率计算
- 智能语义搜索引擎:一站式检索服务、打通数据壁垒、充分挖掘数据价值 | 百万人学AI评选
- pytorch中num_workers详解
- windows server 2008磁盘管理
- Tushare库之获取股票列表接口
- 惠普1005w打印机使用说明书_首款能充粉的打印机来了 惠普1005w一体机评测
- 博士申请 | 澳大利亚麦考瑞大学王岩教授招收机器学习方向全奖博士生
- word文件和扩展名不匹配的解决办法,亲测有效
- 小猿学python_小猿圈详解小白如何学习Python网络爬虫