Unity3d如何根据方向进行旋转,萌新求问!

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3d如何根据方向进行旋转,萌新求问!相关的知识,希望对你有一定的参考价值。

做了一个坦克 只能操作坦克怎么走应该怎么写才能让坦克跟着方向流畅的旋转呢

参考技术A public float moveSpeed=4f;
public float rotateSpeed=10f;

void Update ()

float hor=Input.GetAxis("Horizontal");
float ver = Input.GetAxis ("Vertical");
if(hor!=0|ver!=0)
Quaternion rot=Quaternion.LookRotation(new Vector3(hor,0,ver));
transform.rotation = Quaternion.Lerp (transform.rotation,rot,Time.deltaTime*rotateSpeed);

transform.position=transform.position+new Vector3(hor,0,ver)*Time.deltaTime*moveSpeed;

追问

这样写出来不对啊 大佬,我试过这个方法 转弯太慢了 而且不好控制

追答

不要原封不动嘛,另外搞个rotationSpeed来控制转向速度
另外,你用的translate来移动,本身是受物体朝向影响的,所以当物体旋转后就不对了;
移动改成这样
transform.position=transform.position+new
Vector3(hor,0,ver)*Time.deltaTime*Speed;
具体的朝向对应轴根据你实际情况调整

根据行驶方向旋转标记

【中文标题】根据行驶方向旋转标记【英文标题】:Rotate marker based on driving direction 【发布时间】:2015-01-21 09:56:24 【问题描述】:

我的 Google Maps 地图中有一个标记,如下所示:

当用户驾驶时,我想根据他的驾驶方向旋转它。我怎样才能做到这一点?我可能应该使用以前的位置和当前位置坐标进行计算,但我不知道如何。

【问题讨论】:

你显然知道如何找到位置。在第一个循环之前将前一个位置设置为与当前相同。然后你的循环不断地计算前一个位置和当前位置之间的距离,当它足够大时,方向类似于atan2(dy,dx),此时你设置标记方向,然后记住previous == current并做另一个循环。 你为什么不使用Location对象的bearing呢?您可以将其设置为CameraPosition 在传单api中怎么做? 【参考方案1】:

如果您使用 GPS 定位用户,那么您在 onLocationChanged 中获得的 Location 对象包含 bearing。

如果您只有两个坐标(例如您只有网络位置提供商的坐标),您可以使用Location.bearingTo() 计算两个坐标的方位:

Location prevLoc = ... ;
Location newLoc = ... ;
float bearing = prevLoc.bearingTo(newLoc) ;

如果有方位,可以使用MarkerOptions.rotation()设置标记的旋转:

mMap.addMarker(new MarkerOptions()
                    .position(markerLatLng)
                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.map_marker))
                    .anchor(0.5f, 0.5f)
                    .rotation(bearing)
                    .flat(true));

您必须将anchor 设置为您想要旋转的点,这也是您想要在您设置的标记位置的点。 (0.5, 0.5) 是图像的中心。

【讨论】:

基于这个答案它是如何知道汽车的正面和侧面的? 不知道,假设小车向前移动(它使用两个顺序位置,移动方向指向后一个)。 知道如何在 Angular Google 地图上执行此操作吗?

以上是关于Unity3d如何根据方向进行旋转,萌新求问!的主要内容,如果未能解决你的问题,请参考以下文章

如何将方向盘旋转到 Unity3D 中的原始旋转?

如何让角色转向相机的方向? [Unity3D]

如何冻结 z 和 y 轴方向的旋转? Unity3D

unity3d物体旋转

使用四元数的Unity3D相对偏移对象旋转

萌新Python温度转换程序if TempStr【-1】 in [‘F’,‘f’]报错,错误显示为【-1】这块,求问原因?