Код: Выделить всё
using UnityEngine;
using System.Collections;
public class PlayerScript : MonoBehaviour {
public static float distanceTraveled;
private Touch curTouch;
public float speed;
public float maxSpeed;
public float maxSpeedConstant;
//Virtual buttons left and right half of the screen
private Rect leftHalf = new Rect(0F,F,Screen.width/2,Screen.height);
private Rect rightHalf = new Rect(Scren.width/2,0F,Screen.width/2,Screen.height);
public void Update() {
distanceTraveled = transform.localPosition.x;
}
public void FixedUpdate() {
Movement();
}
public void Movement() {
//Accelerometer Control up/down
Vector3 dirAcc = Vector3.zero;
dirAcc.y = Input.acceleration.y*.5F;
transform.Translate(0F,0F,dirAcc.y);
if (Input.touchCount != 0){
Vector2 curTouch = Input.GetTouch(0).position;
if (leftHalf.Contains (curTouch)) {
transform.Translate(-Vector3.right * speed * Time.deltaTime);
} else {
if (rightHalf.Contains(curTouch)) {
transform.Translate(Vector3.right*speed*Time.deltaTime);
}
}
} else {
if (Input.touchCount == 0) {
transform.Translate(Vector3.right*speed*Time.deltaTime);
}
}
}
}
В приведенном выше коде область касания не имеет значения, персонаж всегда будет двигаться назад, а ввод данных акселерометра полностью игнорируется. Что меня беспокоит, так это то, что приведенный выше код (только часть акселерометра) работал с Transform.Translate вместоrigidbody.AddForce. Но судя по тому, что я прочитал в Интернете, мне понадобятся твердые тела, если я хочу столкновений.
Поэтому любая помощь или совет относительно структуры/синтаксиса кода или решения моей проблемы приветствуется. .
Подробнее здесь: https://stackoverflow.com/questions/363 ... r-in-unity