游戏中的视角:
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和箭头键(方向键)。