Я новичок в этом и пытаюсь научиться использовать C# и единство. В настоящее время я пытаюсь наклонить свой корабль, когда вы двигаетесь вперед и назад по оси x. однако я получаю ошибку компилятора, но не вижу его? любая помощь будет оценена :)Unity rigidbody2d tilt issue
Ошибка заключается в следующем:
Assets/Scripts/PlayerController.cs(28,62): error CS0029: Cannot implicitly convert type 'UnityEngine.Quaternion' to 'float'
using UnityEngine;
using System.Collections;
[System.Serializable]
public class Boundary {
public float xMin, xMax, yMin, yMax;
}
public class PlayerController : MonoBehaviour {
public float speed;
public float tilt;
public Boundary boundary;
void FixedUpdate() {
float moveHorizontal = Input.GetAxis ("Horizontal");
float moveVertical = Input.GetAxis ("Vertical");
Vector2 movement = new Vector2 (moveHorizontal, moveVertical);
this.gameObject.GetComponent<Rigidbody2D>().velocity = movement * speed;
this.gameObject.GetComponent<Rigidbody2D>().position = new Vector2
(
Mathf.Clamp (this.gameObject.GetComponent<Rigidbody2D>().position.x, boundary.xMin, boundary.xMax),
Mathf.Clamp (this.gameObject.GetComponent<Rigidbody2D>().position.y, boundary.yMin, boundary.yMax)
);
//issue is on this line
this.gameObject.GetComponent<Rigidbody2D>().rotation = Quaternion.Euler (0.0f, this.gameObject.GetComponent<Rigidbody2D>().velocity.x * -tilt, 0.0f);
}
}
'Quaternion.Euler' возвращает' UnityEngine.Quaternion'. Но игра 'gameObject.GetComponent() .rotation' является плавающей точкой –
вы можете предложить альтернативу? Я использую единство 5, и, честно говоря, я использую единственное пособие 4.3 для помощи. Он использует следующий код, и он работает: rigidbody.rotation = Quaternion.Euler (0.0f, 0.0f, rigidbody.velocity.x * -tilt); Может быть, я использую rigidbody2D с 3D-переменными? Есть ли альтернатива для 2D, если так? :) – MarkHughes88