[发明专利]一种基于Unity3D模拟旋钮操作的方法在审
申请号: | 202111347375.1 | 申请日: | 2021-11-15 |
公开(公告)号: | CN113961130A | 公开(公告)日: | 2022-01-21 |
发明(设计)人: | 杨友东;唐光宇;闫乃永;卢学明 | 申请(专利权)人: | 宝宝巴士股份有限公司 |
主分类号: | G06F3/0486 | 分类号: | G06F3/0486;G06F3/04847;G06F3/04845;G06T19/00 |
代理公司: | 北京易捷胜知识产权代理事务所(普通合伙) 11613 | 代理人: | 蔡晓敏 |
地址: | 350000 福建省福州市仓山*** | 国省代码: | 福建;35 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 unity3d 模拟 旋钮 操作 方法 | ||
1.一种基于Unity3D模拟旋钮操作的方法,其特征在于,包括:
S1、获取模拟旋钮中心点在屏幕上的坐标p0;
S2、获取用户点击屏幕拖动所述模拟旋钮的初始点击位置的坐标p1,并获取用户点击屏幕拖动所述模拟旋钮的一帧后拖动位置的坐标p2;
S3、计算所述坐标p0指向所述坐标p1的向量v0(x0,y0),并计算所述坐标p0指向所述坐标p2的向量v1(x1,y1),根据所述向量v0的向量坐标和向量v1的向量坐标计算得到所述向量v0和向量v1之间的夹角θ;
S4、将所述向量v0和向量v1进行叉乘计算得到向量n0,根据所述向量n0计算所述模拟旋钮的旋转方向,控制所述模拟旋钮按照所述旋转方向和夹角θ进行旋转;
S5、判断用户点击屏幕拖动所述模拟旋钮的操作是否结束,若否,将所述坐标p2的值赋给坐标p1,返回S2。
2.根据权利要求1所述的基于Unity3D模拟旋钮操作的方法,其特征在于,所述S1包括:
通过Unity函数Camera.WorldToScreenPoint()获取模拟旋钮中心点在屏幕上的坐标p0。
3.根据权利要求1所述的基于Unity3D模拟旋钮操作的方法,其特征在于,所述S3中根据所述向量v0的向量坐标和向量v1的向量坐标计算得到所述向量v0和向量v1之间的夹角θ包括:
将所述向量v0和向量v1进行点乘得到点乘结果d,通过公式d=|v0|·|v1|·Cosθ得到Cosθ=d/(|v0|·|v1|),其中||为取模符号,之后通过Unity的反三角函数Mathf.ACos(Cosθ)计算得到所述向量v0和向量v1之间的夹角θ。
4.根据权利要求3所述的基于Unity3D模拟旋钮操作的方法,其特征在于,所述将所述向量v0和向量v1进行点乘得到点乘结果d包括:
使用Unity的点乘函数d=Vector2.Dot(v0,v1)计算得到点乘结果d,或者通过公式d=v0(x0,y0)·v1(x1,y1)=x0·x1+y0·y1)计算得到点乘结果d。
5.根据权利要求3所述的基于Unity3D模拟旋钮操作的方法,其特征在于,在所述Cosθ=d/(|v0|·|v1|)中的|v0|和|v1|的计算方法包括:
通过|v0|=magnitude(x0,y0),|v1|=magnitude(x1,y1)计算出|v0|和|v1|的结果;
或者通过公式计算出|v0|和|v1|的结果。
6.根据权利要求1所述的基于Unity3D模拟旋钮操作的方法,其特征在于,所述S4中将所述向量v0和向量v1进行叉乘计算得到向量n0包括:
使用unity叉乘函数n0=Vector3.Cross(v0,v1)计算得到向量n0。
7.根据权利要求1或6所述的基于Unity3D模拟旋钮操作的方法,其特征在于,所述S4中根据所述向量n0计算所述模拟旋钮的旋转方向包括:
若所述n0的z轴值为正,则计算出模拟旋钮的旋转方向为逆时针方向,若所述n0的z轴值为负,则计算出模拟旋钮的旋转方向为顺时针方向。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于宝宝巴士股份有限公司,未经宝宝巴士股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111347375.1/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种胸腔术后引流防扭转装置
- 下一篇:一种英短猫饲料的包装设备