首页 > 其他分享 >Layabox获取角色的朝向,以及根据朝向修改角色朝向

Layabox获取角色的朝向,以及根据朝向修改角色朝向

时间:2023-01-30 17:05:15浏览次数:33  
标签:朝向 角色 Laya Vector3 Layabox forward const


如何获取角色的正确朝向?

首先,你要确定从unity里面导出的时候,角色默认朝向的方向。一般都是将角色朝向z轴正方向,那么,你导出放到layabox里面,角色也是默认朝向z轴正方向的。
在layabox中,你可以调用transform.getForward(forward)方法,传入一个Vector3来接收朝向。但是,接收的这个朝向默认角色z轴负方向的朝向。所以,我们需要将这个法向量,转成z轴正方向的法向,才实现了,和角色的朝向同步。
实现这一步,很简单,只需要将法向的x轴和z轴的值转为负值即可实现。

const forward = new Laya.Vector3();
actor.actorView.transform.getForward(forward);
forward.x *= -1;
forward.z *= -1;

Laya.Vector3.normalize(forward, forward);

获取角色和指定方向的偏移

其次,我们还有需求,就是,有一个目标,我们可以通过角色位置和目标位置获取到一个向量,然后,通过求点积,获取到角色正法向和这个向量的夹角(角色默认垂直与地面,所以,位置向量,我们也默认平行于地面)

//获取到移动方向
const moveNor = new Laya.Vector3(1, 0, 0);
//获取当前朝向和移动方向的夹角
const value = Laya.Vector3.dot(moveNor, forward);
//求出角度
const deltaAng = (Math.acos(value) * 180) / Math.PI;

你求出了角度,但是,你根本无法知道这个需要往哪个方向偏移,我们就需要求叉积,求出的叉积的y的值,如果为负值,那么就向顺时针偏移,反之,则往逆时针偏移。接着,我们将值给角色使用即可。

const out = new Laya.Vector3();
Laya.Vector3.cross(forward, moveNor, out);
if (out.y < 0) deltaAng = -deltaAng;
sprite.transform.rotate(new Laya.Vector3(0, deltaAng, 0), true, false);


标签:朝向,角色,Laya,Vector3,Layabox,forward,const
From: https://blog.51cto.com/u_15948039/6027340

相关文章

  • Layabox的2d精灵的性能优化
    在使用Layabox的2d精灵时,我们会需要很多渲染图片的需求,那么,如果做到使用最小的代价实现图片的渲染呢。合并图集为什么要合并图集呢。如果你一个图片是由多张图片组成的,正常......
  • 【ASP.NET Core】用配置文件来设置授权角色
    在开始之前,老周先祝各个次元的伙伴们新春快乐、生活愉快、万事如意。在上一篇水文中,老周介绍了角色授权的一些内容。本篇咱们来聊一个比较实际的问题——把用于授权的角色......
  • 为什么你的游戏角色总是能穿墙
    本文首发于微信公众号【小蚂蚁教你做游戏】,欢迎关注领取更多学习做游戏的原创教程资料,每天学点儿游戏开发知识。嗨!大家好,我是小蚂蚁。在微信小游戏制作工具中,关于物理行为和......
  • 分析JDK、JRE、JVM、JIT 四者的关系与在代码运行时扮演的角色
    [1]四者的简要介绍  ·​​JDK(JavaDevelopmentKit)​​是针对Java开发人员的产品,它包括了Java运行环境JRE、Java工具和Java基础类库;  ·​​JRE(JavaRuntime......
  • 【ASP.NET Core】按用户角色授权
    上次老周和大伙伴们分享了有关按用户Level授权的技巧,本文咱们聊聊以用户角色来授权的事。按用户角色授权其实更好弄,毕竟这个功能是内部集成的,多数场景下我们不需要扩展,不......
  • Ansible介绍以及基于角色搭建LNMP和zabbix
    1ansible常用指令总结,并附有相关示例。/usr/bin/ansible主程序,临时命令执行工具/usr/bin/ansible-doc查看配置文档,模块功能查看工具,相当于man/usr/bin/ansible-pl......
  • 2.Mysql的角色管理
    1.Mysql角色Mysql从8.0开始就支持roles,这个在Oracle可是一直存在的,然后Mysql终于在8.0上开始支持了。2.什么是Mysql的roles?Mysql的roles说直白就是一堆权限的集......
  • MSTP端口角色和端口状态
        ......
  • Asp.Net Core 中IdentityServer4 实战之角色授权详解
    一、前言前几篇文章分享了IdentityServer4密码模式的基本授权及自定义授权等方式,最近由于改造一个网关服务,用到了IdentityServer4的授权,改造过程中发现比较适合基于Role角......
  • 《软件方法》8-9章 更新-时刻时段和角色架构型
    第8章分析之分析类图墙上挂了根长藤,长藤上面挂铜铃《长藤挂铜铃》;词:元庸,曲:梅翁(姚敏),唱:逸敏,19598.1 步骤3-1 识别类和属性在业务建模和需求工作流,我们的思考焦点一直在待......