Created
April 9, 2021 06:37
-
-
Save GT3000/aaf13c931d7642d0431ac03e8afeb227 to your computer and use it in GitHub Desktop.
Sample Player.cs without comments.
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 System.Collections; | |
using System.Collections.Generic; | |
using UnityEngine; | |
public class Player : MonoBehaviour | |
{ | |
[SerializeField] private Vector3 startPos; | |
private Vector3 playerPos; | |
private Vector3 screenPos; | |
[SerializeField] private float speed; | |
[SerializeField] private float upperLimit; | |
[SerializeField] private float widthLimit; | |
private float currentSpeed; | |
[SerializeField] private SpriteRenderer currentThruster; | |
[SerializeField] private Sprite[] thrusters; | |
[SerializeField] private Projectile currentProjectile; | |
[SerializeField] private Transform[] projectileLocations; | |
private float fireTimePassed; | |
void Start() | |
{ | |
startPos = transform.position; | |
currentSpeed = speed; | |
} | |
void Update() | |
{ | |
screenPos = Camera.main.WorldToScreenPoint(transform.position); | |
Movement(); | |
Fire(); | |
} | |
private void Movement() | |
{ | |
playerPos = new Vector3(Input.GetAxisRaw("Horizontal"), Input.GetAxisRaw("Vertical")); | |
transform.Translate(playerPos * Time.deltaTime * currentSpeed); | |
if (transform.position.y > upperLimit) | |
{ | |
transform.position = new Vector3(transform.position.x, upperLimit); | |
} | |
else if (transform.position.y < 0.5f) | |
{ | |
transform.position = new Vector3(transform.position.x, 0.5f); | |
} | |
if (screenPos.x < 0f - (transform.position.x * widthLimit)) | |
{ | |
if (playerPos.x > 0) | |
{ | |
currentSpeed = speed; | |
} | |
else | |
{ | |
currentSpeed = 0f; | |
} | |
} | |
else if (screenPos.x > Screen.width - (transform.position.x * widthLimit)) | |
{ | |
if (playerPos.x < 0) | |
{ | |
currentSpeed = speed; | |
} | |
else | |
{ | |
currentSpeed = 0f; | |
} | |
} | |
if (currentThruster.sprite == thrusters[0]) | |
{ | |
currentThruster.sprite = thrusters[1]; | |
} | |
else | |
{ | |
currentThruster.sprite = thrusters[0]; | |
} | |
} | |
private void Fire() | |
{ | |
fireTimePassed += Time.deltaTime; | |
if (Input.GetMouseButton(0) && fireTimePassed >= currentProjectile.FireDelay) | |
{ | |
foreach (var location in projectileLocations) | |
{ | |
GameObject tempProjectile = Instantiate(currentProjectile.gameObject, location.position, Quaternion.identity); | |
} | |
fireTimePassed = 0f; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment