Audio
创建Audio:
在Hierarchy页面中右击 >> Audio >> Audio Source (myAudioSouceLaser、myAudioSouceMoonLight)
创建文件加存放音频文件:
可以到安装盘:\Program Files\Microsoft Office\Office16\MEDIA中找音频
将音频拖到Inspector面板中的Audio Source组件下的AudioClip
粒子系统
在Hierarchy页面中右击 >> Effects >> Particle System (myParticleSystemFog)
脚本
挂载到飞机身上
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ColisionDetectionoAndSoundControl : MonoBehaviour
{
private RaycastHit hit;
private Vector3 rayOrigin;
public ParticleSystem particleSystemFog;
public AudioSource audioSourceLaser;
// public AudioSource audioSourceMoonLight;
// public Canvas canvas;
// public Job4UI job4UI_Play;
void Start()
{
//初始化
particleSystemFog.Stop();//初始时粒子系统不播放
audioSourceLaser.Stop();//初始时音频不播放
// audioSourceMoonLight.Stop();
}
// Update is called once per frame
void Update()
{
//射线碰撞检测
rayOrigin = new Vector3(transform.position.x, transform.position.y, transform.position.z - 0.61f);
if (Physics.Raycast(rayOrigin, transform.forward * (-1), out hit, 3f)&& hit.collider.name.StartsWith("cube"))
{
//Debug.DrawRay(rayOrigin, transform.forward * (-3), Color.red);
//Debug.Log(hit.collider.name);
GameObject.Find("Flag").transform.position = new Vector3(transform.position.x, transform.position.y, hit.transform.position.z + 0.51f);
}
else{
GameObject.Find("Flag").transform.position = new Vector3(0, -0.5f, 0);
}
}
//碰撞器碰撞检测
void OnCollisionEnter(Collision hit){
if(hit.collider.name.StartsWith("cube")){
if(!audioSourceLaser.isPlaying)
{
audioSourceLaser.Play();
}
}
}
void OnCollisionExit(Collision hit){
if(hit.collider.name.StartsWith("cube")){
audioSourceLaser.Stop();
}
}
//触发器碰撞检测
//进入触发器时
void OnTriggerEnter(Collider hit){
if(hit.CompareTag("Trigger59")){
// if(!audioSourceMoonLight.isPlaying)
// {
// audioSourceMoonLight.Play();
// }
}
}
//停留在触发器中时
void OnTriggerStay(Collider hit){
if(hit.CompareTag("Trigger59")){
Debug.Log("Trigger59 entered, playing particle system and audio.");
particleSystemFog.transform.position = hit.transform.position;
particleSystemFog.transform.localScale = hit.transform.localScale;
particleSystemFog.Play();
// if(!audioSourceMoonLight.isPlaying)
// {
// audioSourceMoonLight.Play();
// }
}
}
//离开触发器
void OnTriggerExit(Collider hit){
if(hit.CompareTag("Trigger59")){
particleSystemFog.Stop();
// audioSourceMoonLight.Stop();
}
}
}