- Make a Unity Account/Download and install Unity (https://accounts.unity3d.com/sign-up)
- Download "2D Platformer" from asset store https://www.assetstore.unity3d.com/en/#!/content/11228
- Download "2D Pack" from asset store https://www.assetstore.unity3d.com/en/#!/content/73728
Last active
April 3, 2017 20:39
-
-
Save paladique/ec0fd1657fa8b0615a390d53574fbf4e to your computer and use it in GitHub Desktop.
Platformer Walkthrough @ NYU (Code from https://unity3d.com/learn/tutorials/topics/2d-game-creation/creating-basic-platformer-game)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using UnityEngine; | |
using System.Collections; | |
public class PickupCoin : MonoBehaviour { | |
// Use this for initialization | |
void Start () { | |
} | |
// Update is called once per frame | |
void Update () { | |
} | |
void OnTriggerEnter2D (Collider2D other) | |
{ | |
if (other.gameObject.CompareTag("Player")) | |
Destroy(gameObject); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using UnityEngine; | |
using System.Collections; | |
public class SimplePlatformController : MonoBehaviour { | |
[HideInInspector] public bool facingRight = true; | |
[HideInInspector] public bool jump = false; | |
public float moveForce = 365f; | |
public float maxSpeed = 5f; | |
public float jumpForce = 1000f; | |
public Transform groundCheck; | |
private bool grounded = false; | |
private Animator anim; | |
private Rigidbody2D rb2d; | |
// Use this for initialization | |
void Awake () | |
{ | |
anim = GetComponent<Animator>(); | |
rb2d = GetComponent<Rigidbody2D>(); | |
} | |
// Update is called once per frame | |
void Update () | |
{ | |
grounded = Physics2D.Linecast(transform.position, groundCheck.position, 1 << LayerMask.NameToLayer("Ground")); | |
if (Input.GetButtonDown("Jump") && grounded) | |
{ | |
jump = true; | |
} | |
} | |
void FixedUpdate() | |
{ | |
float h = Input.GetAxis("Horizontal"); | |
anim.SetFloat("Speed", Mathf.Abs(h)); | |
if (h * rb2d.velocity.x < maxSpeed) | |
rb2d.AddForce(Vector2.right * h * moveForce); | |
if (Mathf.Abs (rb2d.velocity.x) > maxSpeed) | |
rb2d.velocity = new Vector2(Mathf.Sign (rb2d.velocity.x) * maxSpeed, rb2d.velocity.y); | |
if (h > 0 && !facingRight) | |
Flip (); | |
else if (h < 0 && facingRight) | |
Flip (); | |
if (jump) | |
{ | |
anim.SetTrigger("Jump"); | |
rb2d.AddForce(new Vector2(0f, jumpForce)); | |
jump = false; | |
} | |
} | |
void Flip() | |
{ | |
facingRight = !facingRight; | |
Vector3 theScale = transform.localScale; | |
theScale.x *= -1; | |
transform.localScale = theScale; | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using UnityEngine; | |
using System.Collections; | |
public class SpawnCoins : MonoBehaviour { | |
public Transform[] coinSpawns; | |
public GameObject coin; | |
// Use this for initialization | |
void Start () { | |
Spawn(); | |
} | |
void Spawn() | |
{ | |
for (int i = 0; i < coinSpawns.Length; i++) | |
{ | |
int coinFlip = Random.Range (0, 2); | |
if (coinFlip > 0) | |
Instantiate(coin, coinSpawns[i].position, Quaternion.identity); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using UnityEngine; | |
using System.Collections; | |
public class SpawnPlatforms : MonoBehaviour { | |
public int maxPlatforms = 20; | |
public GameObject platform; | |
public float horizontalMin = 7.5f; | |
public float horizontalMax = 14f; | |
public float verticalMin = -6f; | |
public float verticalMax = 6; | |
private Vector2 originPosition; | |
void Start () { | |
originPosition = transform.position; | |
Spawn (); | |
} | |
void Spawn() | |
{ | |
for (int i = 0; i < maxPlatforms; i++) | |
{ | |
Vector2 randomPosition = originPosition + new Vector2 (Random.Range(horizontalMin, horizontalMax), Random.Range (verticalMin, verticalMax)); | |
Instantiate(platform, randomPosition, Quaternion.identity); | |
originPosition = randomPosition; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment