主要视图
关键代码
Player
using UnityEngine;
using System.Collections;
using UnityEngine.UI;//命名空间
public class Player : MonoBehaviour {
//定义一个私有刚体字段
private Rigidbody rd;
//定义一个公开的可修改的整型属性
public int force=5;
//定义一个字段存贮分数
private int score = 0;
//定义存放分数的组件
public Text text;
//定义公开组件,最后激活
public GameObject winText;
// Use this for initialization
void Start () {
//通过关键语句获取相应类型的组件
rd=GetComponent<Rigidbody>();
}
// Update is called once per frame
void Update () {
//通过输入获得水平按键的值 浮点类型 -1到1之间 负数是A,正数是D
float h = Input.GetAxis("Horizontal");
//通过输入获取前后按键的值 浮点类型 -1到1之间 S负数往后 W 正数往前
float v = Input.GetAxis("Vertical");
//加力 进行赋值操作 并乘上可修改的整型属性
rd.AddForce(new Vector3(h,0,v)*force);
}
//碰撞的方法
void OnCollisionEnter(Collision collision) {
// collision.collider//获取碰撞体的游戏物体身上collider组件
// string name=collision.collider.name;//获取碰撞体到游戏对象的名字
// print(name);//把获取名字打印到控制台
//判断碰撞到之后销毁游戏对象
//if (collision.collider.tag=="PickUp")
//{
// Destroy(collision.collider.gameObject);
//}
}
//触发检测
void OnTriggerEnter(Collider collider)
{
if (collider.tag == "PickUp")
{
Destroy(collider.gameObject);
// Debug.Log(collider.name);
//吃完一次加一次分数
score++;
//记录分数
text.text = score.ToString();
//激活组件
if (score==18)
{
winText.SetActive(true);
}
}
}
}
PickUp
public class PickUp : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
//每秒执行60次
//旋转的方法 围绕y轴旋转
transform.Rotate(new Vector3(0,1,0));
}
}
FollowTarget
public class FollowTarget : MonoBehaviour {
//定义一个公开的transform类型的组件 用来装放主角transforn 的属性
public Transform playerTransform;
//定义一个接收transform类型的偏移值;注意位置值是一个三位变量 关键词 vector3
private Vector3 offset;
// Use this for initialization
void Start () {
//初始化时,接收相机当前transform的位置值减去主角transform的位置值
//offset = transform.position - playerTransform.transform.position;
offset = transform.position - playerTransform.position;
}
// Update is called once per frame
void Update () {
//在每一帧时把主角的位置加上刚开始主角与相机的相对的位移值,然后赋值给相机的位置(这样就保持相机跟主角的位置不变)
transform.position = playerTransform.position + offset;
}
}