私のゲームでは、ユーザーが指をスワイプすることに基づいてカメラを動かしたいと考えています。私の問題は、誰かが画面から指を離して再び下に置くと、カメラが新しい位置にジャンプすることです...座標に関係していると推測しています。画面から指を離したところ、カメラがジャンプします。コードは次のとおりです。
var speed : int = 1;
var lastPoint : Vector2; //make this private if you want to.
function Update()
{
var offset : float; //offset of the touch from last frame
if(Input.touches.Length 0)//make sure we have a touch in the first place
{
var evt : Touch = Input.touches[0]; //setting up touch events so we can get fancy.
if(evt.phase == TouchPhase.Began) //this is the first frame the screen has been touched for, simply save the point.
{
lastPoint == evt.position;
}
else if(evt.phase == TouchPhase.Moved
{
offset = evt.position.x - lastPoint.x ;//take the difference
//I'm going to use Transform.Rotate because it's handy dandy
transform.Rotate(0,offset * speed,0);
//save the new "lastPoint"
lastPoint = evt.position;
}
else if(evt.phase == TouchPhase.Ended)
{
//If you want the object to drift after you spin it you can make a function to go here.
//To do this, take the speed of the rotation and continue to rotate all while subtracting off of the speed.
//I would use the Transform.Rotate function on this too.
//If you need me to I could write this function too.
}
}
}
カメラを再開し、誰かが再び指を下ろしたときにジャンプしないようにする解決策は何ですか?
問題を解決するためのより良い解決策/より効率的な方法があれば、私はそれをやり直しても構わないと思っています..
どうもありがとう!