首页| 行业资讯| 企业名录| 周边产品| 数字城市| 增强现实| 工业仿真| 解决方案| 虚拟医疗| 行业仿真| 图形处理| 军事战场
用户登录/注册 ×
资讯首页
行业资讯 >> 学习教程
Unigine2.0教程十《Script实现物体移动》
时间:2019-10-14    评论:0
    来源:友擎(上海)软件科技有限公司
         本文讲解如何通过Unigine Script来实现物体的移动。

         移动

         1、新建工程Movement(注意API设置为:UnigineScript Only)

 
         2、找到world script文件,并且编辑该文件(以后没有特殊提醒,都这样编辑script代码)

         资源文件:[ ./Resource/Res_0011];将资源拷贝至meshes文件夹

 
         3、获取前进正方向

         在Unigine Editor中新建一个people.mesh的ObjectMeshStatic,选中人物模型,然后按快捷键w。


 
4、Movement.cpp的源代码如下
//定义mesh及其速度
//移动速度
ObjectMeshStatic mesh = NULL;
float movement_speed = 5.0f;
//旋转速度
float rotation_speed_left = 30.0f;
float rotation_speed_right = -30.0f;

void init_controls() 
{
//按键初始化
//w、a、s、d 键是相机的默认控制键
//用t,g,f,h 替代
engine.controls.setStateKey(CONTROLS_STATE_AUX_0,’t’);//w                    engine.controls.setStateKey(CONTROLS_STATE_AUX_1,’g’);//s engine.controls.setStateKey(CONTROLS_STATE_AUX_2,’f’);//a engine.controls.setStateKey(CONTROLS_STATE_AUX_3,’h’);//d
}
//World Script初始化
int init() {
//创建一个player(相机)
Player player = new PlayerSpectator();
player.setPosition(vec3(10.0f,10.0,10.0f));
player.setDirection(vec3(-1.0f,-1.0f,-1.0f));
engine.game.setPlayer(player);//看到的场景来自这个player
//保证在meshes文件夹有这个资源(people.mesh)
mesh = new ObjectMeshStatic("people.mesh");
//设置材质
mesh.setMaterial("mesh_base", "*");
//设置position
mesh.setPosition(vec3(1,1,0));
// 调用init_controls()
init_controls();
return 1;
}

//World Script更新
int update() {
//得到上一帧的游戏时间
float ifps = engine.game.getIFps();

//检查这些键是否按下
if(engine.controls.getState(CONTROLS_STATE_AUX_0)) //t
{
// 得到mesh的转换矩阵
mat4 transform = mesh.getWorldTransform();

//得到前进的方向:y轴的负方向
//z轴正方向:transform.m02m12m22
//x轴正方向:transform.m00m10m20
vec3 direction = -transform.m01m11m21;
//计算移动位移
vec3 delta_movement = direction * movement_speed * ifps;

//设置新的位移
mesh.setWorldPosition(mesh.getWorldPosition() + delta_movement);
}
if(engine.controls.getState(CONTROLS_STATE_AUX_1)) //g
{
mat4 transform = mesh.getWorldTransform();
vec3 direction = -transform.m01m11m21;
vec3 delta_movement = -direction * movement_speed * ifps;
mesh.setWorldPosition(mesh.getWorldPosition() + delta_movement);
}
if(engine.controls.getState(CONTROLS_STATE_AUX_2)) //f
{
//设置向左旋转
mesh.setWorldRotation(mesh.getWorldRotation() * quat(rotateZ(rotation_speed_left * ifps)));
}
if(engine.controls.getState(CONTROLS_STATE_AUX_3)) //h
{
//设置向右旋转
mesh.setWorldRotation(mesh.getWorldRotation() * quat(rotateZ(rotation_speed_right * ifps)));
}

return 1;
}
         关于Unigine引擎

         Unigine引擎是一个具有广泛适用性的虚拟现实开发平台,应用领域包含但不限于工业设计及制造、海事模拟、铁路运输、飞行模拟、车辆模拟、医疗模拟、建筑可视化、城市规划、军事、模拟等等。模拟仿真/虚拟现实行业发展到今天,原本使用的各个引擎也已经到了亟需更新换代的时候,Unigine正是抓住了这个机会,非常迅速的踏入了这个行业。随着中国模拟仿真/虚拟现实行业的迅猛发展,工业制作业、科研、医疗、军事军工、娱乐等等领域都产生了大量的需求,而面对这些需求时,曾经引进的那些引擎已经出现了明显的瓶颈,而Unigine问世正好提供了解决方法。

         针对仿真行业的特殊要求,Unigine拥有很多针对性的功能,并进行了优化,比如高度逼真的图像渲染、精细宏大场景、多通道图像生产、非线性图像校正、边缘融合、支持非对称显示输出、适用于CAVE显示系统、立体画面输出、支持头戴显示设备、支持3D空间定位设备、支持多种工业模型数据格式、支持真实世界地理信息数据、强劲性能和可扩展性、丰富的内容支持等,使其在仿真领域更具专业性。

         了解更多详细信息,敬请访问Unigine官方网站:https://www.unigine.com

         Unigine Demo视频演示:https://i.youku.com/unigine
标签:Unigine
上一篇:Unigine2.0教程十一《简单的AI:寻路》下一篇:Unigine2.0教程九《Script实现相机》
网友评论:Unigine2.0教程十《Script实现物体移动》
留名: 验证码:
最新评论
查看全部评论0
暂无评论
您可能还需要关注一下内容:
·Unigine2.0教程一《初识Unigine》
·Unigine2.0教程二《安装与创建工程》
·Unigine2.0教程三《设置规范化的文件夹》
·Unigine2.0教程四《Editor导入模型》
·Unigine2.0教程五《创建材质(Material)》
·Unigine2.0教程六《Nodes介绍》
·Unigine2.0教程七《为模型加骨骼动画》
·Unigine2.0教程八《制作简单的关键帧动画》
·Unigine2.0教程九《Script实现相机》
·Unigine2.0教程十一《简单的AI:寻路》
☏ 推荐产品

小宅 Z5 2018青春版
商家:小宅

杰瑞特运动平台
商家:杰瑞特智能

Dikalis眼动追踪
商家:赢富仪器

魔神 Hawk
商家:魔神运动分析

5DT Binoculars
商家:四维宇宙

Christie DS+750
商家:四维宇宙

Zalman M220W
商家:四维宇宙

全息360°
商家:四维宇宙

PD F10 AS3D
商家:四维宇宙

PHANTOM系列
商家:四维宇宙
☞ 外设导航
☏ 企业名录
【宁波】宁波维真显示科技股份有限公司
【潍坊】歌尔股份有限公司
【上海】霍尼韦尔(中国)有限公司
【北京】科视Christie-中国
【北京】北京华如科技股份有限公司
【北京】北京乐卡仕技术有限公司
【广州】广州弥德科技有限公司
【上海】刃之砺信息科技(上海)有限公司
【北京】北京度量科技有限公司
【北京】北京小鸟看看科技有限公司
关于本站联系我们融资计划免责声明网站建设广告服务咨询策划行业推广
北京第三维度科技有限公司 版权所有 京ICP备15051154号-3
2008-2020 Beijing The third dimension Inc. All Rights Reserved.
Email:d3dweb@163.com  QQ:496466882
Mob:13371637112(24小时)
关注虚拟现实
关注第三维度