【问题标题】:How to rotate an object with single finger touch gesture in Unity如何在 Unity 中使用单指触摸手势旋转对象
【发布时间】:2018-08-30 14:28:04
【问题描述】:

我正在 Unity 上为 Android 移动平台开发一个应用程序。在这个脚本的帮助下,我用单指触摸手势旋转对象,

using UnityEngine;

public class MouseDragRotate : MonoBehaviour {
    float rotationSpeed = 0.02f;

    void OnMouseDrag()
    {
         float XaxisRotation = Input.GetAxis("Mouse X")*rotationSpeed;
         float YaxisRotation = Input.GetAxis("Mouse Y")*rotationSpeed;
         // select the axis by which you want to rotate the GameObject
         transform.RotateAround (Vector3.down, XaxisRotation);
         transform.RotateAround (Vector3.right, YaxisRotation);
    }
}

但问题是,该脚本仅适用于所有 Unity 资源,例如立方体、球体、胶囊等。但不适用于第三方 3d 对象,

那么简单的问题就是为什么这个脚本不适用于第三方 3d 对象?

【问题讨论】:

  • 您能否具体说明第三方对象的含义?您是指来自资产商店的资产,还是从网络下载并导入 Unity 的网格?

标签: android unity3d


【解决方案1】:

您必须将某种Collider 附加到您想与之交互的 3d 模型/对象。您可以将BoxCollider 添加到任何导入的对象,或者如果附加了MeshFilter,您也可以添加MeshCollider

【讨论】:

    【解决方案2】:

    您应该确保您显示的脚本被添加到正确的顶级对象中,而不是该对象的嵌套组件中。 如果您仍然遇到问题,请向我们展示更多关于您尝试将其应用于的对象。以及设置了哪些组件和选项。

    【讨论】:

    • 我只是好奇,我发现collider 没有附加第三方对象。触摸手势需要collider 吗?
    • @HeisenBrg 碰撞体对于触摸手势是必要的,以便可以识别碰撞。据我所知,它是通过光线投射实现的,即使它隐藏在触摸 API 后面。
    猜你喜欢
    • 1970-01-01
    • 2023-04-07
    • 2014-03-16
    • 1970-01-01
    • 2021-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多