Comments 15
TargetterGame повеселило :)
Почему-то у меня тоже всякие финальные версии игр называются примерно так, хотя сейчас приучаю себя делать папочки с версиями.
А за пост спасибо, Unity нравится.
Почему-то у меня тоже всякие финальные версии игр называются примерно так, хотя сейчас приучаю себя делать папочки с версиями.
А за пост спасибо, Unity нравится.
0
Спасибо за статью по Unity) Все больше думаю о переходе с флеша на эту платформу…
0
void OnCollisionEnter()
{
if (!rigidbody)
{
gameObject.AddComponent("Rigidbody");
GameManager.score++;
}
}
Вот этот кусок не понял. Зачем на каждую коллизи цеплять rigidbody?Или это чтобы отслеживать, что по этой мишени уже попали?
-1
Именно из-за условия
rigidbody цепляется не каждую коллизию, а только первую. Если у объекта уже есть этот компонент, условие вернёт false и ничего интересного не произойдёт.
if (!rigidbody)
rigidbody цепляется не каждую коллизию, а только первую. Если у объекта уже есть этот компонент, условие вернёт false и ничего интересного не произойдёт.
0
Чтобы они падали
0
Из задания: "Мишени при попадании должны падать..."
Реализовано таким образом, что изначально мешени не являются физическими телами. Но, даже не будучи физическими телами, они могут обрабатывать соударения. Таким образом при соударении сначала проверяется является ли объект твердым физическим телом, и, если нет, его делают таковым (не забывая увеличить счетчик сбитых мешеней). А, когда объект становится физическим телом, на него начинает действовать гравитация, и он падает.
Реализовано таким образом, что изначально мешени не являются физическими телами. Но, даже не будучи физическими телами, они могут обрабатывать соударения. Таким образом при соударении сначала проверяется является ли объект твердым физическим телом, и, если нет, его делают таковым (не забывая увеличить счетчик сбитых мешеней). А, когда объект становится физическим телом, на него начинает действовать гравитация, и он падает.
0
Каюсь, читал по диагонали. Идею понял.
Просто в документации есть свойство useGravity. Меняя статус которого можно добиться того же эффекта.
Просто в документации есть свойство useGravity. Меняя статус которого можно добиться того же эффекта.
0
Я мальца позанудствую.
Обычно логические операторы используют с булевым типом, поэтому наверное лучше взамен
Зачем лишняя переменная?
Обычно логические операторы используют с булевым типом, поэтому наверное лучше взамен
!rigidbody
, писать rigidbody != null
Зачем лишняя переменная?
float translation = Input.GetAxis("Horizontal") * Time.deltaTime * speed;
transform.position += new Vector3(0, 0, translation);
transform.position += new Vector3(0, 0, Input.GetAxis("Horizontal") * Time.deltaTime * speed;);
0
Сорри, за лишную; в последней строчке — копипаст, такой копипаст
0
С первым моментом согласен, так понятнее будет, поправлю.
Лишняя переменная — правда лишняя, оставлена для наглядности: вот тут мы посчитали нужное перемещение, а вот тут переместили.
Учитывая, что это делается каждый кадр, лучше правда обойтись без неё, но пока это не критично.
Лишняя переменная — правда лишняя, оставлена для наглядности: вот тут мы посчитали нужное перемещение, а вот тут переместили.
Учитывая, что это делается каждый кадр, лучше правда обойтись без неё, но пока это не критично.
0
Sign up to leave a comment.
Третье практическое задание с сайта unity3dstudent.com