私は初心者です。私は単純な2Dゲームを作っています。チュートリアルやWeb上での検索に続いて、私が望むようにコントロールをスクリプト化しました。マウスがクリックされると、適用される力はX軸とY軸の動きによって計算され、マウスボタンを離すと力が適用され、重力がオンになった:パワーを追加するためにドラッグすると、逆の角度(RigidBody2D)、奇妙なビールビールにリリースされます
if (Input.GetMouseButton(0))
{
mouseDown = true;
}
if (!Input.GetMouseButton(0))
{
mouseDown = false;
}
if (Input.GetAxis("Mouse X") != 0 && mouseDown)
{
xForce -= Input.GetAxis("Mouse X") * 50;
}
if (Input.GetAxis("Mouse Y") != 0 && mouseDown)
{
yForce -= Input.GetAxis("Mouse Y") * 50;
}
if (Input.GetMouseButtonUp(0))
{
GetComponent<Rigidbody2D>().gravityScale = 1;
GetComponent<Rigidbody2D>().AddForce(new Vector2(xForce, yForce));
yForce = 0;
xForce = 0;
}
しかし、マウスを使用して完全にテストしている間、それは私の2台のAndroid携帯で奇妙に動作します。ボールがX軸だけの力を得ているように見えることがあり、たとえ垂直にドラッグしてもXの力が加えられても...何が問題なのでしょうか?
EDIT:私はDebug.Log(xForce)とDebug.Log(yForce)を追加し、adb logcatを使ってログを調べました。これは、単に画面をタップしても、これらの変数が増加する、私は実際にこれを解決する方法については全く考えていません...
あなたは何を意味しているのですか?ありがとうございます。しかし、これを実装しようとすると、「worldPosOfInput」と「currentWorldPosOfInput」が何であるか、取得する方法がわかりません...私のnoobnessについてお詫びします。どこでも参考にしてください:) – RingK
私は擬似コードで私の答えを残して、私がその人のために仕事をしているのではないことを確かめています。必要に応じて助けてください! これらは、[Input.mousePosition](http://docs.unity3d.com/ScriptReference/Input-mousePosition.html)と[Camera.ScreenToWorldPoint](http:// docs。)を使用して自分自身を見つける必要がある変数です。 unity3d.com/ScriptReference/Camera.ScreenToWorldPoint.html)。 – Allen
@RingKもう少し有益な答えを更新しました:) – Allen