【发布时间】: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