Unity3D开发之滚动球

主要视图

Unity3D开发之滚动球_第1张图片
滚动球

关键代码

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();
    }
    
    // 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;


    }
}

你可能感兴趣的:(Unity3D开发之滚动球)