Страница обучающего курса: Space Shooter tutorial
Курс написан для Unity 4.x, поэтому для Unity 5.x пришлось переписывать почти все скрипты. Кое-что я добавил свое (например поддержку игрового контроллера и «режим бога», чтобы легче было отлаживать). Режим отладки включается только чекбоксом из Unity Editor, при этом в консоль выводятся данные через Debug.Log. Помимо этого в игре реализована Пауза. Отдельное замечу, что все исправленные скрипты работают с расширенной версией урока, поэтому скорее всего не подойдут для первых уроков, где еще нет некоторых элементов типа вражеских кораблей, подвижного фона и т.п.
using UnityEngine;
using System.Collections;
[System.Serializable]
public class Boundary
{
public float xMin, xMax, zMin, zMax;
}
public class PlayerController : MonoBehaviour
{
public float speed;
public float tilt;
public Boundary boundary;
public GameObject shot;
public Transform shotSpawn;
public float fireRate;
private float nextFire;
// Unity will execute any code in the Update just before an update in the frame
void Update()
{
if (Input.GetButton("Fire1") && Time.time > nextFire)
{
nextFire = Time.time + fireRate;
Instantiate(shot, shotSpawn.position, shotSpawn.rotation);
GetComponent<AudioSource>().Play();
}
}
// Called automatically by Unity just before each physic step. All the code we put inside FixedUpdate function here will be executed once per physic step.
void FixedUpdate()
{
float moveHorizontal = Input.GetAxis("Horizontal");
float moveVertical = Input.GetAxis("Vertical");
Vector3 movement = new Vector3(moveHorizontal, 0.0f, moveVertical);
GetComponent<Rigidbody>().velocity = movement * speed;
GetComponent<Rigidbody>().position = new Vector3
(
Mathf.Clamp(GetComponent<Rigidbody>().position.x, boundary.xMin, boundary.xMax),
0.0f,
Mathf.Clamp(GetComponent<Rigidbody>().position.z, boundary.zMin, boundary.zMax)
);
GetComponent<Rigidbody>().rotation = Quaternion.Euler(0.0f, 0.0f, GetComponent<Rigidbody>().velocity.x * -tilt);
}
}
DenTNT недавно публиковал (посмотреть все)
- WordPress: Ошибка в плагине WpDiscuz - 08.10.2024
- Windows 10: Уменьшить размер виртуальной машины WSL - 06.10.2024
- Windows 10: Событие EventID 63 в Журнале Приложений - 28.09.2024