Написать игру Rall A Ball 2.0
создать модель
1. Создайте мяч
вИерархияСоздайте маленький шар в (щелкните правой кнопкой мыши3D-объектСфера в ), вИнспекторЩелкните Добавить компонент (Добавить компонент), чтобы добавить небольшой шариковый коллайдер (Коробчатый коллайдер) и твердое тело (Жесткое тело).
2. Создайте землю.
Добавьте землю к 3D-объекту (Самолет) и добавьте верхний коллайдер к земле и
отрегулируйте землю до подходящего размера (по умолчанию все в порядке).
3. Создайте еду.
Добавьте кубики к 3D-объекту (куб) по имениЕдаИ добавьте соответствующее тело столкновения для куба. Создайте префаб куба в Project (Профабс) и поместить в папку.
Скопируйте несколько кубов в Инспекторе (ctrl+D или выберите цель и щелкните правой кнопкой мыши Вставить) в качестве пищи шара, чтобы создать префаб.
Создание стен
Метод создания стен такой же, как и создание еды, разница в том, что вам нужно настроить размер стен
в каждом объектеТрансформироватьСреди них Масштаб может регулировать длину, ширину и высоту (x, y, z) объекта.
Написать код
код мяча
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class script : MonoBehaviour
{
public int score = 0;
public Text text;
public GameObject winText;
public GameObject lostText;
public Wallscript wallscript;
public Rigidbody body;/// <summary>
/// 声明一个组件
/// </summary>
// Start is called before the first frame update
void Start()
{
//Debug.Log("开始游戏了!");
body = GetComponent<Rigidbody>();
//得到一个组件,<>内为组件名
}
// Update is called once per frame
void Update()
{
Debug.Log("游戏正在运行!");
float i = Input.GetAxis("Horizontal"); //Horizontal左右键
float j = Input.GetAxis("Vertical");//Vertical前后
body.AddForce(new Vector3(i,0,j)*3);
}
private void OnCollisionEnter(Collision collision) //判断是否发生碰撞OnCollisionEnter是碰撞的瞬间
{
if (collision.gameObject.tag == "Cube") //collision.gameObject获得标签
{
//Destroy(collision.gameObject); //Destroy毁坏物体
lostText.SetActive(true);
}
}
private void OnTriggerEnter(Collider other)//触发区域检测
{
if (other.tag == "Food")
{
Destroy(other.gameObject);
score++;
text.text = "分数:"+score; //显示分数
if(score==7)
{
winText.SetActive(true); //激活对象
}
}
}
}
пищевой код (куб)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class foodscript : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
transform.Rotate(Vector3.up);
// transform.Rotate(Vector3.back);
//将物体旋转Rotate是旋转()内是旋转方向
}
}
Камера следует за мячом
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class follwtarge : MonoBehaviour
{
public Transform tf; //transform位置
private Vector3 offset;
// Start is called before the first frame update
void Start()
{
offset = transform.position - tf.position;
//两物体的位置之差
}
// Update is called once per frame
void Update()
{
transform.position = tf.position + offset;
}
}
игровая упаковка
Нажмите в левом верхнем углуФайл,оказатьсяПараметры здания, Добавить открытую сцену (Добавить открытую сцену) можно выбрать сторону ПК, сторону iOS, сторону Android.
Наконец, нажмите Build и выберите место для упаковки.