- Home /
Question by
Lost_Syndicate · Feb 02, 2018 at 11:43 PM ·
collisiononceistrigger
how to make collision istrigger and play once on collision
OK, so i just completed the script i wanted but i have 1 prolem. It is not is trigger. So when i play the object as istrigger it just walks into it. Also i can walk into it multiple times which i dont want. Here is my script. using System.Collections; using System.Collections.Generic; using UnityEngine;
public class TriggerEventK : MonoBehaviour {
public Transform[] spawnPosition; //Transforms the position
public GameObject[] SpongebobPrefab; //Gameobject of type
public GameObject[] SpongebobClone; //Clone object of type
public Material skyBoxA; //Sets material for skybox
public Material skyBoxS; //Sets material for skybox
public AudioClip myAudioA; //Sets AudioClip
public AudioClip myAudioS; //Sets AudioClip
public AudioSource myAudioSourceA; //Sets AudioSource
public AudioSource myAudioSourceS; //Sets AudioSource
void Start () {
myAudioSourceA.clip = myAudioA; //Sets AudioSource as AudioClip
myAudioSourceS.clip = myAudioS; //Sets AudioSource as AudioClip
RenderSettings.skybox = skyBoxA; //Renders Sets skybox
myAudioSourceA.Play(); //Plays Audio
}
void OnCollisionEnter (Collision collisionInfo){ //Adds collision type
if (collisionInfo.collider.name == "Player"){ //Adds Collision detection for type
RenderSettings.skybox = skyBoxS; //Sets Skybox
RenderSettings.fogColor = Color.black; //Sets Fog Color
RenderSettings.fogDensity = 0.09F; //Sets Fog Density
RenderSettings.fog = true; //Enables Fod
myAudioSourceA.Stop(); //Stops audio
myAudioSourceS.Play(); //Plays Audio
SpongebobClone[0] = Instantiate (SpongebobPrefab[0], spawnPosition[0].transform.position, Quaternion.Euler(0, 0, 0)) as GameObject; //Instantiates Prefab object, reaching clone and spawning it as a GameObject type.
}
}
}
Comment
Best Answer
Answer by Lost_Syndicate · Feb 03, 2018 at 02:40 AM
I figured it out. For those who are wondering here is the code.
public class TriggerEventK : MonoBehaviour {
public Transform[] spawnPosition; //Transforms the position
public GameObject[] SpongebobPrefab; //Gameobject of type
public GameObject[] SpongebobClone; //Clone object of type
public Material skyBoxA; //Sets material for skybox
public Material skyBoxS; //Sets material for skybox
public AudioClip myAudioA; //Sets AudioClip
public AudioClip myAudioS; //Sets AudioClip
public AudioSource myAudioSourceA; //Sets AudioSource
public AudioSource myAudioSourceS; //Sets AudioSource
void Start () {
myAudioSourceA.clip = myAudioA; //Sets AudioSource as AudioClip
myAudioSourceS.clip = myAudioS; //Sets AudioSource as AudioClip
RenderSettings.skybox = skyBoxA; //Renders Sets skybox
myAudioSourceA.Play(); //Plays Audio
}
void OnTriggerEnter (Collider other){ //Adds collision type
if (this.enabled){
if (other.name == "Player"){ //Adds Collision detection for type
RenderSettings.skybox = skyBoxS; //Sets Skybox
RenderSettings.fogColor = Color.black; //Sets Fog Color
RenderSettings.fogDensity = 0.09F; //Sets Fog Density
RenderSettings.fog = true; //Enables Fod
myAudioSourceA.Stop(); //Stops audio
myAudioSourceS.Play(); //Plays Audio
SpongebobClone[0] = Instantiate (SpongebobPrefab[0], spawnPosition[0].transform.position, Quaternion.Euler(0, 0, 0)) as GameObject; //Instantiates Prefab object, reaching clone and spawning it as a GameObject type.
this.enabled = false;
}
}
}
}
Your answer
![](https://koobas.hobune.stream/wayback/20220612151826im_/https://answers.unity.com/themes/thub/images/avi.jpg)