This is a reference page for Unity Scripts
Fence Jump
Controller
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour
{
private Rigidbody playerRb;
private Animator playerAnim;
private AudioSource playerAudio;
public ParticleSystem explosion;
public ParticleSystem dirt;
public AudioClip jump;
public AudioClip crash;
public float jumpForce;
public float gravityModifier;
public bool isOnGround = true;
public bool gameOver = false;
// Start is called before the first frame update
void Start()
{
playerRb = GetComponent<Rigidbody>();
Physics.gravity *= gravityModifier;
playerAnim = GetComponent<Animator>();
playerAudio = GetComponent<AudioSource>();
}
// Update is called once per frame
void Update()
{
if (Input.GetKeyDown(KeyCode.Space) && isOnGround && !gameOver)
{
playerRb.AddForce(Vector3.up * jumpForce, ForceMode.Impulse);
isOnGround = false;
playerAnim.SetTrigger("Jump_trig");
dirt.Stop();
playerAudio.PlayOneShot(jump, 1.0f);
}
}
private void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.CompareTag("Obstacle"))
{
gameOver = true;
playerAnim.SetBool("Death_b", true);
playerAnim.SetInteger("DeathType_int", 1);
explosion.Play();
dirt.Stop();
playerAudio.PlayOneShot(crash, 1.0f);
}
else if (collision.gameObject.CompareTag("Ground"))
{
isOnGround = true;
dirt.Play();
}
}
}
Move Objects Left
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveLeft : MonoBehaviour
{
public float speed;
public float leftBound = -15;
private PlayerController playerControllerScript;
// Start is called before the first frame update
void Start()
{
playerControllerScript = GameObject.Find("Player").GetComponent<PlayerController>();
}
// Update is called once per frame
void Update()
{ if (playerControllerScript.gameOver == false)
{
transform.Translate(Vector3.left * speed * Time.deltaTime);
}
if(transform.position.x < leftBound && gameObject.CompareTag("Obstacle"))
{
Destroy(gameObject);
}
}
}
Repeat Background
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class RepeatBackground : MonoBehaviour
{
private Vector3 startPos;
private float repeatWidth;
// Start is called before the first frame update
void Start()
{
startPos = transform.position;
repeatWidth = GetComponent<BoxCollider>().size.x/2;
}
// Update is called once per frame
void Update()
{
if(transform.position.x < startPos.x - repeatWidth)
{
transform.position = startPos;
}
}
}
Spawn Platform
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Spawner3 : MonoBehaviour
{
public GameObject prefabs;
private Vector3 spawnPos = new Vector3(32, 7.3f, 0);
private PlayerController playerControllerScript;
// Start is called before the first frame update
void Start()
{
InvokeRepeating("SpawnObjects", 2, Random.Range(2.3f,3.6f));
playerControllerScript = GameObject.Find("Player").GetComponent<PlayerController>();
}
// Update is called once per frame
void Update()
{
}
void SpawnObjects()
{
if (playerControllerScript.gameOver == false)
Instantiate(prefabs, spawnPos, prefabs.transform.rotation);
}
}