碰撞检测
两个GameObject发生碰撞,要想检测到触发信息,最少要有一个刚体碰撞器并且勾选了IsTrigger复选框,另一个最少要有一个碰撞器组件,此时检测碰撞的脚本必须附加在那个带有刚体的触发器上。
using UnityEngine;
using System.Collections;
public class pengzhuang : MonoBehaviour {
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
}
void OnCollisionEnter(Collision collisionInfo)
{
if (collisionInfo.gameObject.name == "grade")
{
Debug.Log(this.gameObject.name+"得分!");
Destroy(this.gameObject);
}
}
}
动态创建
using UnityEngine;
using System.Collections;
public class jinbi : MonoBehaviour {
public Camera cam;
public RaycastHit hitt;
public GameObject preObj;
public Transform inibulletposition;
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown(0))
{
Ray ray = cam.ScreenPointToRay(Input.mousePosition);
hitt = new RaycastHit();
Physics.Raycast(ray, out hitt, 100);
if (null != hitt.transform)
{
Vector3 iniPosition;
iniPosition.x = hitt.point.x;
iniPosition.y = 5;
if (hitt.point.z > -2 && hitt.point.z <2)
{
iniPosition.z = hitt.point.z;
GameObject tempJinbi = (GameObject)Instantiate(preObj, iniPosition, hitt.transform.rotation);
tempJinbi.AddComponent<pengzhuang>();
}
}
}
}
}
往返算法