Skip to main content
AR论坛
 首页 » 资源教程 » Unity3D教程

Unity 碰撞检测,触发检测,方向键控制物体移动

2016年09月01日 12:31:534450

以下代码主要来自siki老师的 Roll A Ball 游戏,在此基础上添加一些注释,以备后用。

[csharp] view plain copy
  1. using UnityEngine;  
  2. using System.Collections;  
  3. using UnityEngine.UI;  
  4.   
  5. public class Player : MonoBehaviour {  
  6.   
  7.     private Rigidbody rd;  
  8.     public int force = 5;  
  9.     public Text txt;  
  10.     private int score = 0;  
  11.     public GameObject winTxt;  
  12.   
  13.     // Use this for initialization  
  14.     void Start () {  
  15.         rd = GetComponent<Rigidbody>();  
  16.     }  
  17.       
  18.     // Update is called once per frame  
  19.     void Update () {  
  20.         float h = Input.GetAxis("Horizontal");  //左右的力  
  21.         float v = Input.GetAxis("Vertical");    //前后的力  
  22.         rd.AddForce(new Vector3(h, 0, v) * force);  
  23.     }  
  24.   
  25.     //碰撞检测  有物理效果  
  26.     void OnCollisionEnter(Collision collision)  
  27.     {  
  28.         //collision.collider //获取碰撞到的游戏物体身上的Collider组件  
  29.         //string name = collision.collider.name; //获取碰撞到的游戏物体名字  
  30.         //print(name);  
  31.         if (collision.collider.tag == "PickUp")  
  32.         {  
  33.             Destroy(collision.collider.gameObject);  
  34.         }  
  35.     }  
  36.   
  37.     //触发检测  没有物理效果  游戏主角进入门的时候可以用  
  38.     void OnTriggerEnter(Collider collider)  
  39.     {  
  40.         if (collider.tag == "PickUp")  
  41.         {  
  42.             score++;  
  43.             txt.text = score.ToString();  
  44.             if (score==9)  
  45.             {  
  46.                 winTxt.SetActive(true);  
  47.             }  
  48.   
  49.             Destroy(collider.gameObject);  
  50.         }  
  51.     }  
  52. }  
评论列表暂无评论
发表评论