Unity实现每次按键发射一个红色的小球,碰到蓝色立方体炸开按键发射小球时,产生射击音效 立方体被击中时,在立方体处产生碰撞音效 在地面播放视频
时间: 2023-12-06 19:02:02 浏览: 63
Unity 3d实现小球绕立方体转动
5星 · 资源好评率100%
以下是实现该功能的Unity脚本:
```csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BallLauncher : MonoBehaviour {
public GameObject ballPrefab;
public AudioClip shootSound;
public AudioClip hitSound;
public GameObject explosionPrefab;
public VideoPlayer videoPlayer;
private AudioSource audioSource;
void Start () {
audioSource = GetComponent<AudioSource>();
}
void Update () {
if (Input.GetKeyDown(KeyCode.Space)) {
// 发射小球
GameObject ball = Instantiate(ballPrefab, transform.position, Quaternion.identity);
Rigidbody rb = ball.GetComponent<Rigidbody>();
rb.AddForce(transform.forward * 500f);
// 播放射击音效
audioSource.PlayOneShot(shootSound);
}
}
void OnCollisionEnter(Collision collision) {
if (collision.gameObject.CompareTag("Cube")) {
// 立方体被击中,炸开并播放碰撞音效
Instantiate(explosionPrefab, collision.transform.position, Quaternion.identity);
audioSource.PlayOneShot(hitSound);
Destroy(collision.gameObject);
}
}
void OnTriggerEnter(Collider other) {
if (other.gameObject.CompareTag("Ground")) {
// 播放视频
videoPlayer.Play();
}
}
}
```
这个脚本需要挂载在一个空物体上,并且需要将需要的音频和视频资源拖入对应的变量中。
在场景中,需要有一个立方体和一个平面。立方体需要给一个“Cube”标签,平面需要给一个“Ground”标签。并且需要将视频文件拖入场景中并给VideoPlayer组件的变量指定该文件。
阅读全文