美文网首页
虚拟键盘的方位映射到游戏世界空间的计算

虚拟键盘的方位映射到游戏世界空间的计算

作者: 光棍狗没有可持续发展 | 来源:发表于2019-07-17 15:42 被阅读0次
以EasyTouch和EasyJoystick为例,在响应虚拟摇杆的事件方法里会传来虚拟摇杆当前方位的x轴和y轴坐标值: QQ图片20190717145847.png
QQ图片20190717150029.png

设当前虚拟摇杆传过来的纵轴值为ver,横轴值为hor,实际的虚拟摇杆的当前方位应该为两坐标轴的向量相加:

Vector2 direction = new Vector2(hor, 0)+ new Vector2(0, ver);

direction  = new Vector2(hor, ver).normalized;

这个方位是标准的空间映射方位,有时候可能需要进一步映射到模型的方位上,比如映射到游戏角色模型上,设跟随角色的相机transform为camTransform:

//转化角色纵轴到世界空间
Vector3 forward = camTransform.TransformDirection(Vector3.forward);
forward.y = 0f;
forward = forward.normalized;
//转化角色横轴到世界空间
Vector3 right = camTransform.TransformDirection(Vector3.right);
right.y = 0;
right = right.normalized;

m_direction = new Vector2(right.x, forward.z).normalized;

m_direction即为当前角色的控制方位。
虚拟摇杆的各轴力矩应用到角色方位:

direction = new Vector3(hor* m_direction.x, 0, ver* m_direction.y).normalized;

设速度为speed:

Vector3 targetPosition = camTransform.position+ Speed * Time.deltaTime * direction;

同理使用按键时,调用方法Input.GetAxisRaw("Horizontal")和Input.GetAxisRaw("Vertical")分别代替虚拟摇杆传回hor和ver值即可。

相关文章

  • 虚拟键盘的方位映射到游戏世界空间的计算

    设当前虚拟摇杆传过来的纵轴值为ver,横轴值为hor,实际的虚拟摇杆的当前方位应该为两坐标轴的向量相加: 即 这个...

  • android 获取虚拟键盘高度

    判断是否有虚拟键盘 获取虚拟键盘高度 有虚拟键盘的手机,获取到的手机屏幕的高度包括了虚拟键盘的高度,在进行一些计算...

  • 25用户态内存映射

    mmap 将虚拟地址空间映射到物理内存 匿名映射,即虚拟内存和物理内存直接映射文件映射,将文件映射到虚拟内存ima...

  • Linux kernel之二内存管理之进程虚拟地址空间

    1.背景 虚拟内存的一大优势就是每个进程有自己的虚拟地址空间,OS 负责将其虚拟地址空间映射到物理内存中。内核处理...

  • 世界观 9.2.2.2 计算力,虚拟世界露出的尾巴

    计算力,是虚拟世界和物质世界不同的重要方面。 物质世界的研究是不考虑计算力的。一个地方有物质,就自然使周围的空间弯...

  • AR导航(二)

    一、 AR场景设置为了把真实世界位置坐标映射到虚拟世界,需要设置ARSessionConfiguration 的 ...

  • 内存管理-分页机制

    先看图表示虚拟地址到物理地址的映射,把两段与程序运行所需要的同等大小的虚拟空间映射到某段物理空间。 例如程序A需要...

  • 32位,64位?

    寄存器的大小,总线传输单位(字长),虚拟内存地址空间大小,虚拟地址位数,也就是指针变量的位数 计算机世界中所谓的指...

  • 虚拟地址空间相关--程序员的自我修养

    虚拟地址空间和物理地址空间 物理地址空间是实实在在存在于计算机中,并且对于每一台计算机来说只有一个。虚拟地址空间是...

  • 虚拟与现实

    什么是虚拟? 什么是现实? 我们会说网络世界是虚拟的,游戏世界是虚拟的,白日梦世界是虚拟的...

网友评论

      本文标题:虚拟键盘的方位映射到游戏世界空间的计算

      本文链接:https://www.haomeiwen.com/subject/uhiqlctx.html