У меня проблема с BoxCollider2D, который у меня есть на моем GameObject. Когда я вращаю GameObject, BoxCollider2D вращается вместе с ним, но не так быстро. Есть ли способ заставить BoxCollider2D двигаться с той же скоростью, что и GameObject? Я чувствую, что мне не хватает чего-то очевидного.Unity BoxCollider2D вращение не совпадает с поворотом GameObject
Before Rotation
After Rotation
Ниже мой код для движения игрока:
Animator anim;
Rigidbody2D rbody;
float speed = 0f;
public float moveSpeed = 0.6f;
public float acceleration = 0.2f;
public int turnSpeed = 20;
bool sails = false;
// Use this for initialization
void Start() {
anim = GetComponentInChildren<Animator>();
rbody = GetComponent<Rigidbody2D>();
}
// Update is called once per frame
void Update() {
if (sails) {
rbody.transform.Translate (transform.right * (speed * Time.deltaTime));
speed += acceleration * Time.deltaTime;
if (speed > moveSpeed)
speed = moveSpeed;
if (Input.GetKey (KeyCode.LeftArrow)) {
rbody.transform.Rotate (0,0,turnSpeed * Time.deltaTime);
}
if (Input.GetKey (KeyCode.RightArrow)) {
rbody.transform.Rotate (0,0,-turnSpeed * Time.deltaTime);
}
}
if (!sails) {
rbody.transform.Translate (transform.right * (speed * Time.deltaTime));
speed += -acceleration * Time.deltaTime;
if (speed < 0f)
speed = 0f;
}
if (Input.GetKeyDown (KeyCode.Space)) {
sails = !sails;
anim.SetBool ("sailsDown", sails);
}
}
Это идеальный вариант. Я застрял, думая, что проблема лежит в поворот. Благодаря! – StevieBruce
Да, локальные и мировые координаты могут сначала немного запутываться, убедитесь, что вы понимаете, какое фактическое значение вы получаете при запросе значений относительно игрового объекта. Могли бы вы проголосовать за андерса? Я был бы очень признателен! благодаря – Leo