Unity做的一个小球游戏笔记

游戏中的视角:
public class FollowTarget : MonoBehaviour {
    public Transform playerTransfrom;
    private Vector3 offset;
       // Use this for initialization
       void Start () {
        offset = transform.position - playerTransfrom.position;  //偏移位置等于相机位置-player位置    只调用一次

       }

       // Update is called once per frame
       void Update () {
        transform.position = playerTransfrom.position + offset;  // 相机位置=player位置+偏移位置   一直调用。
       }
}

触发检测:

Unity做的一个小球游戏笔记_第1张图片



测试分数:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//加一行这个

public class Player : MonoBehaviour {
    private Rigidbody rd;
    public int force = 5;
    private int score=0; //分数私有变量
    public Text text;  //分数显示UI
    public GameObject winText;//胜利显示
       // Use this for initialization
       void Start () {
        rd = GetComponent();

       }

       // Update is called once per frame
       void Update () {
        float h = Input.GetAxis("Horizontal");
        float v = Input.GetAxis("Vertical");
        rd.AddForce(new Vector3(h, 0, v)*force);

       }
    void OnCollisionEnter(Collision collision)
    {
        if (collision.collider.tag == "PickUp")
        {
            Destroy(collision.collider.gameObject);
        }
    }
    void OnTriggerEnter(Collider collider)
    {
        if(collider.tag == "PickUp"){
            score++;
            text.text = score.ToString(); //分数赋值给text的text。
            if (score == 12)
            {
                winText.SetActive(true);//如果分数达到12分,激活winText.
            }
            Destroy(collider.gameObject);
        }
    }
}

物块旋转:

public class PickUp : MonoBehaviour {
       // Use this for initialization
       void Start () {

       }
       void Update () {
        transform.Rotate(new Vector3(0, 1, 0));//Vector3是三维向量,括号里分别是X,Y,Z,括号里应该是新建了一个方向和Y轴一样的向量,这个的意思控制这个Pickup一直绕Y轴旋转
       }
}

键盘控制

public class Player : MonoBehaviour {
    private Rigidbody rd;//rigidbody是刚体,是物体的一种属性 

   public int force = 5;
       // Use this for initialization
       void Start () {
        rd = GetComponent();//获得当前组件的刚体

       }

       // Update is called once per frame
       void Update () {
        float h = Input.GetAxis("Horizontal");
       float v = Input.GetAxis("Vertical");//获取键盘输入,GetAxis函数下面详解
        rd.AddForce(new Vector3(h, 0, v)*force);//在x,y平面运动

       }

Input.GetAxis()函数:它能够返回来自键盘、控制器或鼠标平滑的并且可以设置的输入结果。"Horizontal" 和"Vertical" 对应于控制杆、A、W、S、D和箭头键(方向键)。


你可能感兴趣的:(学习,Unity)