欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity3d--碰撞检测(一)

程序员文章站 2022-07-12 23:34:04
...

碰撞分为三个阶段:

演示一下吧:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player1 : MonoBehaviour {

    private Rigidbody rd;      //创建一个刚体类型的对象
    public float force=5.0f;   //定义成public类型,就可以在Inspector面板上直接更改值
	// Use this for initialization
	void Start () {
        rd = GetComponent<Rigidbody>();     //得到当前物体的刚体组件属性,并赋值给rd
	}
	
	// Update is called once per frame
	void Update () {
        //用来得到水平的按键   a返回-1   d返回1
        float h = Input.GetAxis("Horizontal");
        //用来得到水平的按键   s返回-1   w返回1
        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);
    }
}

Unity3d--碰撞检测(一)
Unity3d--碰撞检测(一)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Player1 : MonoBehaviour {

    private Rigidbody rd;      //创建一个刚体类型的对象
    public float force=5.0f;   //定义成public类型,就可以在Inspector面板上直接更改值
	// Use this for initialization
	void Start () {
        rd = GetComponent<Rigidbody>();     //得到当前物体的刚体组件属性,并赋值给rd
	}
	
	// Update is called once per frame
	void Update () {
        //用来得到水平的按键   a返回-1   d返回1
        float h = Input.GetAxis("Horizontal");
        //用来得到水平的按键   s返回-1   w返回1
        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);    在Console面板中输出名字
        if(collision.collider.tag=="pickup")    
        {
            //如果碰撞物体的标签是pickup就销毁
            Destroy(collision.collider.gameObject);    
        }
    }
}

Unity3d--碰撞检测(一)

相关标签: Unity 3D