CN113961130A - 一种基于Unity3D模拟旋钮操作的方法 - Google Patents

一种基于Unity3D模拟旋钮操作的方法 Download PDF

Info

Publication number
CN113961130A
CN113961130A CN202111347375.1A CN202111347375A CN113961130A CN 113961130 A CN113961130 A CN 113961130A CN 202111347375 A CN202111347375 A CN 202111347375A CN 113961130 A CN113961130 A CN 113961130A
Authority
CN
China
Prior art keywords
vector
coordinate
knob
calculating
unity
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111347375.1A
Other languages
English (en)
Inventor
杨友东
唐光宇
闫乃永
卢学明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baobao Bus Co ltd
Original Assignee
Baobao Bus Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Baobao Bus Co ltd filed Critical Baobao Bus Co ltd
Priority to CN202111347375.1A priority Critical patent/CN113961130A/zh
Publication of CN113961130A publication Critical patent/CN113961130A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明涉及一种基于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。计算方法简单实用,实现了模拟旋钮旋转的“跟手”操作。

Description

一种基于Unity3D模拟旋钮操作的方法
技术领域
本发明涉及计算机软件领域,尤其涉及一种基于Unity3D模拟旋钮操作的方法。
背景技术
在游戏互动和一些应用场景中,经常需要模拟一些旋钮的旋转操作。比如模拟一个音量旋钮,那么在游戏互动中需要模拟一个旋转阀门开关,在平时生活中看似很简单的一个操作,在屏幕上将该旋转阀门开关拖动起来却没那么容易实现,且在Unity3D中,并没有直接可以使用的功能,现有技术中也没有相关的公开信息。
发明内容
(一)要解决的技术问题
为了解决现有技术的上述问题,本发明提供一种基于Unity3D模拟旋钮操作的方法,能够实现在Unity3D中操作模拟旋钮。
(二)技术方案
为了达到上述目的,本发明采用的技术方案为:一种基于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。
(三)有益效果
本发明的有益效果是:通过获取模拟旋钮中心点坐标以及获取用户点击屏幕拖动旋转模拟旋钮过程中每一帧点击/拖动的位置坐标,能够计算出模拟旋钮每一帧的旋转角度和方向,计算方法简单实用,实现了模拟旋钮旋转的“跟手”操作。
附图说明
图1为本发明的一种基于Unity3D模拟旋钮操作的方法的流程图;
图2为本发明的一种基于Unity3D模拟旋钮操作的方法的细节流程图;
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
实施例一
请参照图1所示,一种基于Unity3D模拟旋钮操作的方法,包括:
S1、获取模拟旋钮中心点在屏幕上的坐标p0;
S2、获取用户点击屏幕拖动(如手指触控或鼠标点击)所述模拟旋钮的初始点击位置的坐标p1,并获取用户点击屏幕拖动所述模拟旋钮的一帧后拖动位置的坐标p2;
S3、计算所述坐标p0指向所述坐标p1的向量v0(x0,y0),并计算所述坐标p0指向所述坐标p2的向量v1(x1,y1),具体为:v0=p1-p0,v1=p2-p0;
根据所述向量v0的向量坐标和向量v1的向量坐标计算得到所述向量v0和向量v1之间的夹角θ;
S4、将所述向量v0和向量v1进行叉乘计算得到向量n0,根据所述向量n0计算所述模拟旋钮的旋转方向,控制所述模拟旋钮按照所述旋转方向和夹角θ进行旋转;
S5、判断用户点击屏幕拖动所述模拟旋钮的操作是否结束,若否,将所述坐标p2的值赋给坐标p1,返回S2。
其中,所述S1包括:
通过Unity函数Camera.WorldToScreenPoint()获取模拟旋钮中心点在屏幕上的坐标p0。
其中,所述S3中根据所述向量v0的向量坐标和向量v1的向量坐标计算得到所述向量v0和向量v1之间的夹角θ包括:
将所述向量v0和向量v1进行点乘得到点乘结果d,通过公式d=|v0|·|v1|·Cosθ得到Cosθ=d/(|v0|·|v1|),其中||为取模符号,之后通过Unity的反三角函数Mathf.ACos(Cosθ)计算得到所述向量v0和向量v1之间的夹角θ。
其中,所述将所述向量v0和向量v1进行点乘得到点乘结果d包括:
使用Unity的点乘函数d=Vector2.Dot(v0,v1)计算得到点乘结果d,或者通过公式d=v0(x0,y0)·v1(x1,y1)=x0·x1+y0·y1计算得到点乘结果d。
其中,在所述Cosθ=d/(|v0|·|v1|)中的|v0|和|v1|的计算方法包括:
通过v0.magnitude和v1.magnitude分别计算出|v0|和|v1|的结果,其计算过程具体为|v0|=magnitude(x0,y0),|v1|=magnitude(x1,y1),进而得到|v0|和|v1|;
或者通过公式
Figure BDA0003354711660000041
计算出|v0|和|v1|的结果。
其中,所述S4中将所述向量v0和向量v1进行叉乘计算得到向量n0包括:
使用unity叉乘函数n0=Vector3.Cross(v0,v1)计算得到向量n0。
其中,所述S4中根据所述向量n0计算所述模拟旋钮的旋转方向包括:
若所述n0的z轴值为正,则计算出模拟旋钮的旋转方向为逆时针方向,若所述n0的z轴值为负,则计算出模拟旋钮的旋转方向为顺时针方向。
综上所述,本发明提供的一种基于Unity3D模拟旋钮操作的方法,通过获取模拟旋钮中心点坐标以及获取用户点击屏幕拖动旋转模拟旋钮过程中每一帧点击/拖动的位置坐标,能够计算出模拟旋钮每一帧的旋转角度和方向,计算方法简单实用,实现了模拟旋钮旋转的“跟手”操作。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (7)

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|的结果;
或者通过公式
Figure FDA0003354711650000021
Figure FDA0003354711650000022
计算出|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轴值为负,则计算出模拟旋钮的旋转方向为顺时针方向。
CN202111347375.1A 2021-11-15 2021-11-15 一种基于Unity3D模拟旋钮操作的方法 Pending CN113961130A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111347375.1A CN113961130A (zh) 2021-11-15 2021-11-15 一种基于Unity3D模拟旋钮操作的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111347375.1A CN113961130A (zh) 2021-11-15 2021-11-15 一种基于Unity3D模拟旋钮操作的方法

Publications (1)

Publication Number Publication Date
CN113961130A true CN113961130A (zh) 2022-01-21

Family

ID=79470506

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111347375.1A Pending CN113961130A (zh) 2021-11-15 2021-11-15 一种基于Unity3D模拟旋钮操作的方法

Country Status (1)

Country Link
CN (1) CN113961130A (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110309919A1 (en) * 2010-06-22 2011-12-22 Microsoft Corporation Providing Directional Force Feedback In Freespace
CN103513919A (zh) * 2013-04-28 2014-01-15 展讯通信(上海)有限公司 一种触控设备及3d转盘的显示控制方法、装置
CN106178504A (zh) * 2016-06-27 2016-12-07 网易(杭州)网络有限公司 虚拟对象运动控制方法及装置
CN108958619A (zh) * 2017-05-26 2018-12-07 阿里巴巴集团控股有限公司 用户界面操作方法、设备及计算机可读存储介质
CN109887093A (zh) * 2019-01-17 2019-06-14 珠海金山网络游戏科技有限公司 一种游戏细节层次处理方法及系统
CN110930488A (zh) * 2019-11-15 2020-03-27 深圳市瑞立视多媒体科技有限公司 鱼体行为模拟方法、装置、设备及存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110309919A1 (en) * 2010-06-22 2011-12-22 Microsoft Corporation Providing Directional Force Feedback In Freespace
CN103513919A (zh) * 2013-04-28 2014-01-15 展讯通信(上海)有限公司 一种触控设备及3d转盘的显示控制方法、装置
CN106178504A (zh) * 2016-06-27 2016-12-07 网易(杭州)网络有限公司 虚拟对象运动控制方法及装置
CN108958619A (zh) * 2017-05-26 2018-12-07 阿里巴巴集团控股有限公司 用户界面操作方法、设备及计算机可读存储介质
CN109887093A (zh) * 2019-01-17 2019-06-14 珠海金山网络游戏科技有限公司 一种游戏细节层次处理方法及系统
CN110930488A (zh) * 2019-11-15 2020-03-27 深圳市瑞立视多媒体科技有限公司 鱼体行为模拟方法、装置、设备及存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
张晴: "于Unity3D的初中物理虚拟实验系统的设计与实现——以力学实验为例", 中国优秀硕士学位论文全文数据库社会科学Ⅱ辑, pages 5 *
张晴: "基于Unity3D的初中物理虚拟实验系统的设计与实现——以力学实验为例", pages 5 *
李长锋;修毅;: "OpenGL下三维模型的显示和自由旋转", vol. 26, no. 03 *

Similar Documents

Publication Publication Date Title
US11687230B2 (en) Manipulating 3D virtual objects using hand-held controllers
CN111145326B (zh) 三维虚拟云模型的处理方法、存储介质、处理器及电子装置
WO2018040511A1 (zh) 基于ar的二维图像转换至三维场景的实现方法
Ramani A gesture-free geometric approach for mid-air expression of design intent in 3D virtual pottery
CN109732593B (zh) 一种机器人的远端控制方法、装置及终端设备
CN106600664B (zh) 对称图形的绘制方法和装置
CN103543923B (zh) 控件的点击事件处理方法及系统
Kang et al. Editing 3D models on smart devices
CN103077025B (zh) 一种封闭几何图形擦除轨迹线并生成新轨迹线的方法
Cukovic et al. Engineering design education for industry 4.0: implementation of augmented reality concept in teaching CAD courses
CN112659124A (zh) 一种基于Android系统的虚拟仿真与控制系统
AU2018226403A1 (en) Brush stroke generation with deep neural networks
CN113961130A (zh) 一种基于Unity3D模拟旋钮操作的方法
Liverani et al. Towards interactive finite element analysis of shell structures in virtual reality
Suk et al. A study on the effect of the use of augmented reality on students' quantity take-off performance
Guo et al. The simulation of the brush stroke based on force feedback technology
Kuester et al. 3DIVS: 3-dimensional immersive virtual sculpting
EP2889738A1 (en) Computer-implemented method for designing a three-dimensional modeled object
Kang et al. An alternative method for smartphone input using AR markers
EP4024342A1 (en) Polybezier-based digital ink strokes
Han et al. Ar pottery: Experiencing pottery making in the augmented space
Kuester et al. Designers workbench: toward real-time immersive modeling
Yin et al. HUA: an interactive calligraphy and ink-wash painting system
WO2023206257A1 (zh) 手写笔迹生成方法、装置、计算机设备和可读介质
WO2023115312A1 (zh) 手写笔迹生成方法、装置、计算机设备和可读介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination