Did a few things
This commit is contained in:
@@ -3,39 +3,31 @@ using UnityEngine.Events;
|
||||
|
||||
public class CharacterController2D : MonoBehaviour
|
||||
{
|
||||
public float m_JumpForce = 400f; // Amount of force added when the player jumps.
|
||||
|
||||
public float m_JumpVelocity = 20f;
|
||||
public AudioSource SFX;
|
||||
public AudioClip JumpSFX;
|
||||
public LayerMask m_WhatIsGround; // A mask determining what is ground to the character
|
||||
public Transform m_GroundCheck; // A position marking where to check if the player is grounded.
|
||||
public LayerMask GroundLayer;
|
||||
public Transform GroundCheckElement;
|
||||
public float GroundCheckRadius = 0.2f;
|
||||
bool OnGround;
|
||||
public Rigidbody2D rb;
|
||||
|
||||
const float k_GroundedRadius = .2f; // Radius of the overlap circle to determine if grounded
|
||||
private bool m_Grounded; // Whether or not the player is grounded.
|
||||
const float k_CeilingRadius = .2f; // Radius of the overlap circle to determine if the player can stand up
|
||||
private Rigidbody2D m_Rigidbody2D;
|
||||
private bool m_FacingRight = true; // For determining which way the player is currently facing.
|
||||
private Vector3 m_Velocity = Vector3.zero;
|
||||
bool wasOnGround = false;
|
||||
|
||||
private void Awake()
|
||||
{
|
||||
m_Rigidbody2D = GetComponent<Rigidbody2D>();
|
||||
|
||||
}
|
||||
bool CanJump = false;
|
||||
|
||||
private void FixedUpdate()
|
||||
{
|
||||
m_Grounded = false;
|
||||
|
||||
// The player is grounded if a circlecast to the groundcheck position hits anything designated as ground
|
||||
// This can be done using layers instead but Sample Assets will not overwrite your project settings.
|
||||
Collider2D[] colliders = Physics2D.OverlapCircleAll(m_GroundCheck.position, k_GroundedRadius, m_WhatIsGround);
|
||||
for (int i = 0; i < colliders.Length; i++)
|
||||
wasOnGround = OnGround;
|
||||
if (Physics2D.CircleCast(GroundCheckElement.position, GroundCheckRadius, Vector2.zero, 0f, GroundLayer))
|
||||
{
|
||||
if (colliders[i].gameObject != gameObject)
|
||||
{
|
||||
m_Grounded = true;
|
||||
}
|
||||
OnGround = true;
|
||||
}
|
||||
else{
|
||||
OnGround = false;
|
||||
}
|
||||
if (wasOnGround != OnGround && OnGround == true){
|
||||
CanJump = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -43,33 +35,18 @@ public class CharacterController2D : MonoBehaviour
|
||||
public void Move(float move, bool jump)
|
||||
{
|
||||
|
||||
// Move the character by finding the target velocity
|
||||
Vector3 targetVelocity = rb.velocity;
|
||||
targetVelocity[0] = move;
|
||||
rb.velocity = targetVelocity;
|
||||
|
||||
Vector3 targetVelocity = m_Rigidbody2D.velocity;
|
||||
targetVelocity[0] = move * 10f;
|
||||
m_Rigidbody2D.velocity = targetVelocity;
|
||||
|
||||
// If the player should jump...
|
||||
if (m_Grounded && jump)
|
||||
if (OnGround && jump && CanJump)
|
||||
{
|
||||
m_Grounded = false;
|
||||
targetVelocity = m_Rigidbody2D.velocity;
|
||||
targetVelocity[1] = m_JumpForce;
|
||||
m_Rigidbody2D.velocity = targetVelocity;
|
||||
OnGround = false;
|
||||
targetVelocity = rb.velocity;
|
||||
targetVelocity[1] = m_JumpVelocity;
|
||||
rb.velocity = targetVelocity;
|
||||
SFX.clip = JumpSFX;
|
||||
SFX.Play();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void Flip()
|
||||
{
|
||||
// Switch the way the player is labelled as facing.
|
||||
m_FacingRight = !m_FacingRight;
|
||||
|
||||
// Multiply the player's x local scale by -1.
|
||||
Vector3 theScale = transform.localScale;
|
||||
theScale.x *= -1;
|
||||
transform.localScale = theScale;
|
||||
}
|
||||
}
|
||||
|
27
Assets/Scripts/MenuPlay.cs
Normal file
27
Assets/Scripts/MenuPlay.cs
Normal file
@@ -0,0 +1,27 @@
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
using UnityEngine.SceneManagement;
|
||||
|
||||
public class MenuPlay : MonoBehaviour
|
||||
{
|
||||
public LayerMask contactFilter;
|
||||
public AudioSource sfx;
|
||||
public MenuMouse mouse;
|
||||
// Start is called before the first frame update
|
||||
void Start()
|
||||
{
|
||||
Cursor.visible = false;
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update()
|
||||
{
|
||||
if (Input.GetMouseButtonDown(0)){
|
||||
if(Physics2D.CircleCast(mouse.pos, 1f, Vector2.zero, 0f, contactFilter)){
|
||||
sfx.Play();
|
||||
SceneManager.LoadScene("Tutorial");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
11
Assets/Scripts/MenuPlay.cs.meta
Normal file
11
Assets/Scripts/MenuPlay.cs.meta
Normal file
@@ -0,0 +1,11 @@
|
||||
fileFormatVersion: 2
|
||||
guid: d5075f6fba02f0545a305b5420f31a2c
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
@@ -35,12 +35,12 @@ public class PlayerControls : MonoBehaviour
|
||||
if (switchy){
|
||||
sprite.flipY = true;
|
||||
rb.sharedMaterial = top;
|
||||
controller.m_JumpForce = controller.m_JumpForce * 2f;
|
||||
controller.m_JumpVelocity = controller.m_JumpVelocity * 2f;
|
||||
}
|
||||
else {
|
||||
sprite.flipY = false;
|
||||
rb.sharedMaterial = bottom;
|
||||
controller.m_JumpForce = controller.m_JumpForce / 2f;
|
||||
controller.m_JumpVelocity = controller.m_JumpVelocity / 2f;
|
||||
}
|
||||
sfx.clip = RotateSFX;
|
||||
sfx.Play();
|
||||
@@ -69,7 +69,7 @@ public class PlayerControls : MonoBehaviour
|
||||
|
||||
}
|
||||
void FixedUpdate(){
|
||||
controller.Move(horizonatalaxis * runspeed * Time.fixedDeltaTime, jumping);
|
||||
controller.Move(horizonatalaxis * runspeed * 10f * Time.fixedDeltaTime, jumping);
|
||||
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user