网站首页 > 基础教程 正文
在不经过编码基础上,能够通过编辑器的动画功能实现旋转。那么同理,通过代码也可以控制模型旋转。这个过程所用到的代码并不多。
那么需要解决的问题是,Cocos 3.x如何创建脚本?这个过程步骤是如何?
如何挂载脚本?
如何旋转?
1 创建一个脚本
首选在资源管理器里面,创建一个文件夹script,将新建的脚本创建在其文件夹下。如创建一个叫Monkey.ts的脚本。如下图1
新建脚本如下,该脚本会继承Component组件类。这里用到语法是TypeScript。
备注:Typescript语法:可以到微软官方查看其写法,https://www.typescriptlang.org/
import { _decorator, Component, Node, math, Vec3, Quat } from 'cc';
const { ccclass, property } = _decorator;
@ccclass('Monkey')
export class Monkey extends Component {
start() {
}
update(deltaTime: number) {
}
}
2 编写旋转逻辑
模型点击节点的时候可以观察到其坐标系,Y轴是朝上,Z轴正对着我们,X轴在右边。这个时候要围绕Y轴去旋转。要让它产生旋转,就是在每一帧里面对其角度递增。我们将代码写到update方法里面,使产生每一帧刷新。
import { _decorator, Component, Node, math, Vec3, Quat } from 'cc';
const { ccclass, property } = _decorator;
@ccclass('Monkey')
export class Monkey extends Component {
private angle:number = 0 //角值
start() {
}
update(deltaTime: number) {
this.angle++; // 不断递增角度
if(this.angle > 360) {
this.angle = 0;
}
let vec3 = new Vec3(0, this.angle, 0); //针对Y轴旋转
this.node.eulerAngles = vec3;//赋值欧拉角
}
}
3 挂载脚本到其节点身上
要使脚本产生效果,这个时候就要对脚本绑定挂载。鼠标拖住资源管理器的脚本拖拽到对应其节点属性面板。绑定后这个脚本就能成功挂载到脚本身上。
同理,将其他节点也挂载这个脚本,重复上述的操作。完成后进行预览效果。
以上经过脚本后,猴头和骑士就能一起旋转了。若在此刻想打包window给朋友看,这个时候就可以直接打包window平台来实现桌面化平台的支持。
4 不同方向旋转的实现
要其产生不同的方向,只需要修改不同轴的数值就可以实现其效果。如修改X轴的旋转。让猴头基于X轴方向进行旋转。产生效果和基于Y轴并不会一样。
import { _decorator, Component, Node, math, Vec3, Quat } from 'cc';
const { ccclass, property } = _decorator;
@ccclass('Monkey')
export class Monkey extends Component {
private angle:number = 0
start() {
}
update(deltaTime: number) {
this.angle++;
if(this.angle > 360) {
this.angle = 0;
}
let vec3 = new Vec3(this.angle, 0, 0);
this.node.eulerAngles = vec3;
}
}
5 小结
基于TypeScript 的语法,通过挂载脚本到节点中去产生旋转效果,这个过程操作十分便利。当你写好的脚本也可以分享给有需要的朋友来展示你要的效果。由于第一次编写,在书写过程出现很多不熟悉情况。查看官方的API是一个不错的选择。
语法需要到微软官方进行查看 https://www.typescriptlang.org/
cocos 文档APi 可以到https://docs.cocos.com/creator/api/zh/ 官方进行查看
- 上一篇: Nodejs安装、配置与快速入门
- 下一篇: KPL:清融人物志,不做下一个久诚只做自己的法王
猜你喜欢
- 2025-01-08 「深度」凯文-杜兰特的九年雷霆光阴
- 2025-01-08 深度丨涅磐重生到“超级3D”球星?他还是无所不能的保罗·乔治
- 2025-01-08 詹姆斯和字母哥全方位对比谁更强?年轻的你,像极了当年的我!
- 2025-01-08 人物|加里哈里斯—潜力3D急速下滑,他需要如何做出改变
- 2025-01-08 威联通NAS下载工具哪家强?
- 2025-01-08 数据表明新秀卡明斯基和德朗-赖特已蓄势待发
- 2025-01-08 广东的进攻得多糟糕呀...江苏首节出现10失误&依然领先广东5分!
- 2025-01-08 五人五问: 谁是下一个总冠军?
- 2025-01-08 推荐10个“不能错过”的前端攻城师必背面试题源码及详解
- 2025-01-08 打造万兆私人网络存储服务器,威联通TS-532X让数据永存
- 05-22Linux cron任务计划
- 05-22测试人员如何在linux服务器中查询mysql日志?
- 05-22Nginx命令最全详解(29个最常用命令)
- 05-22初识自动化网络编排器NSO,轻松配置复杂的多厂商网络
- 05-22Nacos在企业生产中如何使用集群环境?
- 05-22如何从 MySQL 错误日志中排查数据库故障
- 05-22Linux面试最高频的5个基本问题
- 05-22linux网卡混杂模式
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- deletesql (62)
- c++模板 (62)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- console.table (62)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)