clq
浏览(490) +
2022-12-01 15:07:37 发表
编辑
关键字:
[2022-12-03 16:37:23 最后更新]
跨框架 3d 操作参考
参考 http://newbt.net/ms/vdisk/show_bbs.php?id=5E52705D239AD4E759EF9413ACBA9367&pid=164
还是单独开一贴吧,因为我现在其实主要用 cocos 3d /u3d 。
1.2
平滑移动
//类似于 u3d 的函数
update(deltaTime: number) {
//return;
//----------------------------------------------------------------
//参考 http://newbt.net/ms/vdisk/show_bbs.php?id=5E52705D239AD4E759EF9413ACBA9367&pid=164
//中的 u3d 示例,应该有
//let pos1:cc.math.Vec3 = {};
//let pos1:cc.Vec3 = {};
let cur_pos = this.mainCamera.node.position;
let new_pos = cur_pos.clone();
//new_pos.x = new_pos.x + 1; //cocos 中的位置单位是什么?米? //向右
//new_pos.y = new_pos.y + 1; //cocos 中的位置单位是什么?米? //向右
//new_pos.z = new_pos.z - 1; //向前
//----
if (this.cur_key == "w") new_pos.z = new_pos.z - 1; //向前
if (this.cur_key == "s") new_pos.z = new_pos.z + 1; //向前
if (this.cur_key == "a") new_pos.x = new_pos.x - 1; //向前
if (this.cur_key == "d") new_pos.x = new_pos.x + 1; //向前
//----
let speed = 0.005;
speed = 1; //表示每秒移动一个单位
cc.Vec3.lerp(new_pos, cur_pos, new_pos, deltaTime * speed);
//cocos 的函数比较奇怪,这个大概相关于 u3d 中的 新位置 = lerp(起点,终点,速度)
//this.node.setPosition(new_pos); //和下面的一样效果
this.mainCamera.node.setPosition(new_pos); //和上面的一样效果,因为这个脚本是绑定到主摄像头上的
2.
键盘事件
cc.input.on(cc.Input.EventType.KEY_DOWN, this.OnKeyDown, this);
//3.6 的写法 //按键事件
OnKeyDown(param: any) {
//cc.EventKeyboard //从浏览器调试可知 param 其类型为 EventKeyboard
//{
// "type": "keydown",
// "bubbles": false,
// "target": null,
// "currentTarget": null,
// "eventPhase": 0,
// "propagationStopped": false,
// "propagationImmediateStopped": false,
// "keyCode": 87,
// "_isPressed": true
// }
this.cur_key = String.fromCharCode(param.keyCode);
console.log(this.cur_key);
this.cur_key = this.cur_key.toLowerCase(); //转换为小写比较好
console.log(this.cur_key);
//alert(param.keyCode);
//alert(param);
}//
3.图片按钮
cocos 在 assets 中放一张 png 图片,它会当做一个 texture 。可以在属性框中将其更改为 sprite-frame,修改为 sprite-frame
后就可以当做一个 ui 组件拖放到 ui 的 canvas 中了,这时还可以给它添加 widget 组件(在自己的添加组件菜单中选择就可以了)
就可以对齐了。
4.
模型导入
c3d只支持fbx不支持dae格式,blender中导出时要选择两种“网格”和“其他”,另外的那些选项的不能跟着导出,也不能只导出“网格”,只导出“网格”的话传到丢失贴图材质。
不能像 dae 那样选择子物体就可以。这个就比不上 u3d 了。这位的话就只能一个模型是一个文件才好处理了。
注意拖放 fbx 时不要拖到 2d 的 Canvas 下,那样的话会在设计器中正常而运行时不显示。最好是拖动到空白处再移动位置。
另外 MagicaVoxel 中生成的物体似乎会被当成一个整体,材质上似乎也不好处理。尚未发现(是我自己不知道)比较好的处理方法。
NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.