【问题标题】:Unity - lean touch move objects on z axis instead of y?Unity - 精益触摸在z轴而不是y轴上移动对象?
【发布时间】:2019-08-14 13:42:10
【问题描述】:

好的,我使用资产商店中的 Lean Touch,我可以在 x 和 y 方向移动对象。物体具有受重力影响的刚体,因此会落到平面上。当它们在平面上时(如在 AR 中),我需要垂直手指移动以在 z 轴上移动对象。

我不知道该怎么做。这是发生转换的地方:

//REAL TRANSLATE
        protected virtual void Translate(Vector2 screenDelta)
        {
            // Make sure the camera exists
            var camera = LeanTouch.GetCamera(Camera, gameObject);

            if (camera != null)
            {
                // Screen position of the transform
                var screenPoint = camera.WorldToScreenPoint(transform.position);

                // Add the deltaPosition
                screenPoint += (Vector3)screenDelta;

                transform.position = camera.ScreenToWorldPoint(screenPoint);

这是在 LeanTranslate.cs 中。如何在 z 轴而不是 y 轴上移动对象(理想情况下如果它接触平面)?

现在:

  if(transform.GetComponent<ObjectController>() != null && transform.GetComponent<ObjectController>().isOnPlane)
                {

                    Vector3 newDelta = new Vector3(screenDelta.x, 0, screenDelta.y*0.05f);
                    screenPoint += newDelta;

                } else {
                    screenPoint += (Vector3)screenDelta;
                }


                transform.position = camera.ScreenToWorldPoint(screenPoint);

错误:

【问题讨论】:

    标签: c# unity3d game-physics


    【解决方案1】:

    现在代码只是将 screenDelta 变量转换为 Vector3。这大致相当于“new Vector3(screenDelta.x, screenDelta.y, 0)”,它使 z 轴归零。

    因此,您只需将该行替换为将增量分配给正确轴的自定义行。

    【讨论】:

    • 谢谢,我唯一的问题是它现在在 z 轴上向相机移动,y 不会保持不变(物体应该与平面保持水平,而是冲向相机)。查看我的编辑
    • 当前代码正在尝试将位置从屏幕空间投影到世界空间。听起来您只想在世界空间中工作。我会删除最后一行,然后将对象相对地推入鼠标位置的增量,用 z 代替 y。
    • 所以你的意思是 transform.position = screenPoint; ?这给了我一个无限错误(上面发布)
    • 不,您需要跟踪鼠标的增量、每帧的偏移量,并将其转换为世界坐标,然后以一种在您的游戏中感觉良好的方式添加到 transform.position .
    • 类似 transform.position += new Vector3(screenDelta.x, 0, screenDelta.y);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-14
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多