gpt4 book ai didi

c# - 如何通过捏合来缩放游戏对象?

转载 作者:行者123 更新时间:2023-11-29 05:08:52 24 4
gpt4 key购买 nike

如何在 Android/iOS 中用捏(2 个手指)缩放游戏对象(立方体)?如果捏合正在扩大,则立方体的比例 (x, y, z) 会变大,如果捏合正在缩小,则立方体的比例会变小。

我有一个用于鼠标拖动的脚本,但只能缩放 2 个轴(x,y)。

public class Drag : MonoBehaviour
{
Vector3 lastMousePosition;
float scaleSensitivity = 2f;
void Update()
{
if (Input.GetMouseButtonDown(0)) {
lastMousePosition = Input.mousePosition;
}
if (Input.GetMouseButton(0)) {
transform.localScale += ((Input.mousePosition - lastMousePosition) * Time.deltaTime * scaleSensitivity);
lastMousePosition = Input.mousePosition;
}
}

}

最佳答案

看看Input.Touches:Input.Touches并使用差异(Input.Touches[0] - Input.Touches[1]).magnitude,修复每一帧的差异。如果每一帧都变大,则意味着用户正在放大,否则如果它变小,则意味着用户正在缩小

float? _prevFrameDiff;

void Update()
{
if (Input.touches.Length < 2)
{
_prevFrameDiff = null;
return;
}

var diff = (Input.touches[0].position - Input.touches[1].position).magnitude;

if (!_prevFrameDiff.HasValue)
{
_prevFrameDiff = diff;
return;
}
else
{
var scaleFactor = diff / _prevFrameDiff.Value;

this.transform.localScale = Vector3.one * scaleFactor;
}
}

关于c# - 如何通过捏合来缩放游戏对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59876459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com