UNITY 5 - 2D Character programmieren

  • 14.02.2017

Im Internet findest du viele verschiedene 2D Sprites für deinen Unity Character, doch wie kannst du nun diese Sprites in dein Projekt einfügen? Wir zeigen es dir in dieser Videoreihe Schritt für Schritt. 

  • Sprites einfügen und IDLE-Animation anlegen
  • Bewegungsskript erstellen
  • Run-Animation
  • Character Flip
  • Springen
  • GroundCheck

PlayerMovementScript


using System.Collections;

using System.Collections.Generic;

using UnityEngine;



public class PlayerMovementScript : MonoBehaviour {	



Rigidbody2D rb;	float horizontal;	

[SerializeField] private float speed;	

[SerializeField] private float jumpForce;	

Animator playerAnimator;	

SpriteRenderer playerSpriteRenderer;	

bool grounded;	

// Use this for initialization	

void Start () {		

	rb = GetComponent<rigidbody2d> ();		

	playerAnimator = GetComponent<animator> ();		

	playerSpriteRenderer = GetComponent<spriterenderer> ();	

}		

// Update is called once per frame	void Update () {		

// wenn Taste A - wenn Taste D usw..	}	

void FixedUpdate(){		

	// Horizontale Bewegung bei Tasten-Input		

	horizontal = Input.GetAxis("Horizontal");		

	rb.velocity = new Vector2(horizontal * speed, rb.velocity.y);		

	playerAnimator.SetFloat ("Speed", Mathf.Abs(horizontal));		

	

	if (horizontal &lt; 0) 

	{			

		// Nach links blicken			

		playerSpriteRenderer.flipX = true;		

	}		

	

	if(horizontal &gt; 0)		

	{			

		// Nach rechts blicken			

		playerSpriteRenderer.flipX = false;		

	}		

	

	// Springen		

	if (Input.GetKeyDown (KeyCode.Space) &amp;&amp; grounded) 

	{			

		Debug.Log ("Springen");			

		// Kraft nach oben (Y-Achse) hinzufügen			

		rb.AddForce(transform.up * jumpForce); 			

		// Vermeide mehrmaliges Springen			

		grounded = false;			

		// Animation für Springen abspielen			

		playerAnimator.SetTrigger("Jump");		

	}	

}	

void OnCollisionEnter2D(Collision2D other)	{		

	// Nur wenn Kollision mit Ground		

	if (other.collider.tag == "Ground") {			

	Debug.Log ("Grounded");			grounded = true;		

	} else			

	Debug.Log ("Nicht der Untergrund");	

	}

}

</spriterenderer>

</animator>

</rigidbody2d>


Weiterführende Links