All project materials that I worked on are placed in Project 1 folder under Assets folder. There are 5 subfolders under Project 1 folder:
_3DModels: contains all used models.
_Scripts: contains all written scripts.
_Materials: contains all created materials.
_Sounds: contains all used sounds.
_Images: contains used textures and normal maps.
Project 1 folder is available here: Project 1 sharing link
Simply place that folder under assets folder.
Windows executable file: ExeFile
For the purpose of this project I wrote the following C# scripts.
- TriggerTheDoor.cs
public class TriggerTheDoor1 : MonoBehaviour {
public GameObject Door;
public AudioClip sound;
public bool doorIsOpening = false;
public bool doorIsClosing = false;
void Start () {
GetComponent<AudioSource> ().playOnAwake = false;
GetComponent<AudioSource> ().clip = sound; }
void Update () {
if (doorIsOpening == true) {
Door.transform.Translate (Vector3.forward * Time.deltaTime * 1);
if (Door.transform.position.z > 227.086) {
doorIsOpening = false; }
}
else if (doorIsClosing == true) {
Door.transform.Translate (Vector3.back * Time.deltaTime * 1);
if (Door.transform.position.z < 223.81) {
doorIsClosing = false; }
}
}
void OnTriggerEnter(Collider obj)
{
if (!obj.name.Equals("GlassDoor") && !obj.name.Equals("GlassWall") && !obj.name.Equals("DoorBase") && !obj.name.Equals("Ball")) {
doorIsOpening = true;
doorIsClosing = false;
GetComponent<AudioSource> ().Play ();
}
}
void OnTriggerExit(Collider obj)
{
if (!obj.name.Equals("GlassDoor") && !obj.name.Equals("GlassWall") && !obj.name.Equals("DoorBase") && !obj.name.Equals("Ball")) {
doorIsClosing = true;
doorIsOpening = false;
GetComponent<AudioSource> ().Play ();
}
}
}
public GameObject Door;
public AudioClip sound;
public bool doorIsOpening = false;
public bool doorIsClosing = false;
void Start () {
GetComponent<AudioSource> ().playOnAwake = false;
GetComponent<AudioSource> ().clip = sound; }
void Update () {
if (doorIsOpening == true) {
Door.transform.Translate (Vector3.forward * Time.deltaTime * 1);
if (Door.transform.position.z > 227.086) {
doorIsOpening = false; }
}
else if (doorIsClosing == true) {
Door.transform.Translate (Vector3.back * Time.deltaTime * 1);
if (Door.transform.position.z < 223.81) {
doorIsClosing = false; }
}
}
void OnTriggerEnter(Collider obj)
{
if (!obj.name.Equals("GlassDoor") && !obj.name.Equals("GlassWall") && !obj.name.Equals("DoorBase") && !obj.name.Equals("Ball")) {
doorIsOpening = true;
doorIsClosing = false;
GetComponent<AudioSource> ().Play ();
}
}
void OnTriggerExit(Collider obj)
{
if (!obj.name.Equals("GlassDoor") && !obj.name.Equals("GlassWall") && !obj.name.Equals("DoorBase") && !obj.name.Equals("Ball")) {
doorIsClosing = true;
doorIsOpening = false;
GetComponent<AudioSource> ().Play ();
}
}
}
- OnCollision.cs
public class OnCollision : MonoBehaviour {
private Rigidbody rb;
public float Pushpower = 12f;
public AudioClip sound;
void Start()
{
rb = GetComponent<Rigidbody> ();
GetComponent<AudioSource> ().playOnAwake = false;
GetComponent<AudioSource> ().clip = sound;
}
void OnCollisionEnter (Collision obj)
{
GetComponent<AudioSource> ().Play ();
if (obj.transform.name == "BodyCollider"){
Vector3 diff = rb.position - obj.rigidbody.position;
Vector3 PushDir = new Vector3(diff.x, 0, diff.z);
rb.velocity = PushDir * Pushpower;
}
}
}
private Rigidbody rb;
public float Pushpower = 12f;
public AudioClip sound;
void Start()
{
rb = GetComponent<Rigidbody> ();
GetComponent<AudioSource> ().playOnAwake = false;
GetComponent<AudioSource> ().clip = sound;
}
void OnCollisionEnter (Collision obj)
{
GetComponent<AudioSource> ().Play ();
if (obj.transform.name == "BodyCollider"){
Vector3 diff = rb.position - obj.rigidbody.position;
Vector3 PushDir = new Vector3(diff.x, 0, diff.z);
rb.velocity = PushDir * Pushpower;
}
}
}
- PenholderPutDown.cs
public class PenholderPutDown : MonoBehaviour {
public AudioClip sound;
void Start ()
{
GetComponent<AudioSource> ().playOnAwake = false;
GetComponent<AudioSource> ().clip = sound;
}
void OnCollisionEnter (Collision obj)
{
if (obj.transform.name == "PensHolderRect") {
GetComponent<AudioSource> ().Play ();
}
}
}
public AudioClip sound;
void Start ()
{
GetComponent<AudioSource> ().playOnAwake = false;
GetComponent<AudioSource> ().clip = sound;
}
void OnCollisionEnter (Collision obj)
{
if (obj.transform.name == "PensHolderRect") {
GetComponent<AudioSource> ().Play ();
}
}
}