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位置+偏移位置   一直调用。
       }
}

触发检测:




测试分数:

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<Rigidbody>();

       }

       // 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<Rigidbody>();//获得当前组件的刚体

       }

       // 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和箭头键(方向键)。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值