В C # 4,
Vector3 velocity;
var comp = GetComponent<Rigidbody2D>();
if (comp != null)
velocity = comp.velocity;
else
velocity = Vector2.zero;
Также попробуйте эту версию, чтобы увидеть, работает ли она.Это лучше, и если comp.velocity
равно Vector2
, я ожидаю, что так и будет.Но я не знаю Unity, так что попробуй.
var comp = GetComponent<Rigidbody2D>();
Vector3 velocity = (comp == null) ? Vector2.zero : comp.velocity;
Вы можете видеть, почему оператор ?.
был встречен с такими громкими осаннами, когда они добавили его в язык.