我正在構建一個地球被隕石撞擊的游戲。我已經對撞擊地球的隕石進行了編程,兩種形狀都有一個球體對撞機。我還設計了爆炸粒子。
但是,我不知道一旦隕石撞擊地球,如何激活爆炸。
這是我的代碼:
地球自轉腳本
using System.Collections.Generic;
using UnityEngine;
public class orbit : MonoBehaviour
{
public Transform world;
public float rotationSpeed=1f;
// Start is called before the first frame update
void Start()
{
world = GetComponent<Transform>();
Debug.Log("this works on the first frame");
}
// Update is called once per frame
void Update()
{
//code for rotating the earth
world.Rotate(new Vector3(0, rotationSpeed, 0), Space.World);
}
}
地球物體
uj5u.com熱心網友回復:
為此,您必須在兩個元素(地球和隕石)上添加剛體,并僅在其中一個上激活“觸發器”選項。(例如地球)。
在您添加的這個腳本中添加一個新函式(地球自轉的片段)。
添加一個新變數(帶有粒子的預制件)。
在你的粒子系統上激活“Play on Awake”和“Stop action”來銷毀。
public GameObject explosionPrefab;
void OnCollisionEnter(Collision collision)
{
ContactPoint contact = collision.contacts[0];
Quaternion rot = Quaternion.FromToRotation(Vector3.up, contact.normal);
Vector3 pos = contact.point;
GameObject explosionParticle = Instantiate(explosionPrefab, pos, rot);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/480222.html
下一篇:試圖洗掉一個空列-winform