元形体 元形体
关注数: 34 粉丝数: 55 发帖数: 1,969 关注贴吧数: 1
unity3d爆炸效果 if (Input.GetMouseButtonDown(0)) { //Camera.main:得到主摄像机 //Input.mousePosition:得到鼠标现在的位置 //我的理解是从主摄像机到鼠标现在的点发射一条射线 Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); //光线投射碰撞 RaycastHit hit; //函数是对射线碰撞的检测,当碰撞到物体时,返回一个碰撞信息 if (Physics.Raycast(ray, out hit)) { Vector3 point = hit.point;//得到碰撞点的坐标 //实例化出这个物体 Instantiate(particle, point, Quaternion.identity); //Physics.OverlapSphere():球体投射,给定一个球心和半径,返回球体投射到的物体的碰撞器 Collider[] colliders = Physics.OverlapSphere(point, 0.1f); foreach (Collider hits in colliders) //遍历碰撞器数组 { Vector3 boomv= hits.transform.position; Destroy(hits.gameObject); UnityEngine.Object obj = Instantiate(particle, boomv, Quaternion.identity); GameObject gobj = (GameObject)obj; foreach (Transform ts in gobj.transform) { //如果这个物体有刚体组件 if (ts.GetComponent<Rigidbody>()) { //给定爆炸力大小,爆炸点,爆炸半径 //利用刚体组件添加爆炸力AddExplosionForce ts.GetComponent<Rigidbody>().AddExplosionForce(power, boomv, radius); } } Destroy(gobj.gameObject, 2f); } } } 网上抄了一段代码,原本希望是点哪个然后在这个物体中心诞生个跟原来外观一样的物体,只是新cube是分割为8个小的cube并且还有刚体的物体,然后添加爆炸力。 但是现在新物体直接就炸飞状态了,没有炸飞的过程,直接就散一地了
1 下一页