Unity3D根据鼠标旋转缓动

编程入门 行业动态 更新时间:2024-10-09 16:25:09

Unity3D根据<a href=https://www.elefans.com/category/jswz/34/1769042.html style=鼠标旋转缓动"/>

Unity3D根据鼠标旋转缓动

1.旋转部分

u3d中的一般旋转:
transform.Rotate(Vector3.back, 10f, Space.Self); 这是根据自身坐标轴做旋转,10f是旋转单位,同时这里的Space可以改成Space.World,变为根据世界坐标轴旋转
另外一种围绕旋转:
transform.RotateAround(GameObject.Find("Cube1").transform.position, Vector3.right, 5f);  在这里根据“Cube1" 物体的坐标进行围绕旋转,vector3.right是方向。

2.鼠标移动:

根据鼠标旋转,就是判断鼠标的移动方向与距离:
鼠标的位置:Vector3 vM1 = Input.mousePosition; 记录第一次的鼠标位置,第二次的鼠标位置减去第一次的位置就是移动的位置。
获取鼠标移动的X轴长度: float fLeft = vM2.x - vM1.x;
fLeft  > 0 则表示往世界坐标轴的X方向移动。

3.缓动效果:

给物体添加一个旋转,比如 transform.Rotate(Vector3.back, fSpeed, Space.Self); 
fSpeed初始值为0.5f,每一帧减去0.01f,则会出现旋转速度慢慢降低的效果。主要是在判断何时让他缓动比较麻烦。

4.其他:

物体隐藏方法:gameObject.SetActive(false);  在物体Active设置为false之后就不能通过GameObject.Find方法找到该物体了,以下方法可以解决:
GameObject go; 
 go = GameObject.Find("wuti");
这样就可以根据go对象来设置SetActive(false)之后再设置成true。如果根据这种方法给自身设置false则无用,因为设置为false之后脚本也停止运行了。

动画的播放与停止,判断是否结束:
播放:transform.animation.Play();  把动画放在物体上,这样就播放了。
停止:animation.Stop();
判断结束:(!(animation.IsPlaying("Take 001") && animation["Take 001"].normalizedTime < 1.0f))
animation.IsPlaying("Take 001") 表示是否在播放该动画
animation["Take 001"].normalizedTime < 1.0f) 表示是否还在第一次播放中,第二次播放则大于1f
倒播:  animation["Take 001"].speed = -1;  然后再play().

更多推荐

Unity3D根据鼠标旋转缓动

本文发布于:2024-02-14 03:32:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1761752.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:鼠标   Unity3D

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!