From 074bfc90acf26ea52236f59dbe4dec4b2269d0ec Mon Sep 17 00:00:00 2001 From: PingGames Date: Wed, 22 Feb 2023 19:53:54 +0100 Subject: [PATCH] Add basic PlayerController script --- src/Assets/Scenes/SampleScene.unity | 56 +++++++++++++++++++-- src/Assets/Scripts/PlayerController.cs | 39 ++++++++++++++ src/Assets/Scripts/PlayerController.cs.meta | 11 ++++ src/ProjectSettings/TagManager.asset | 2 +- 4 files changed, 104 insertions(+), 4 deletions(-) create mode 100644 src/Assets/Scripts/PlayerController.cs create mode 100644 src/Assets/Scripts/PlayerController.cs.meta diff --git a/src/Assets/Scenes/SampleScene.unity b/src/Assets/Scenes/SampleScene.unity index 1339c0f..3a8c79a 100644 --- a/src/Assets/Scenes/SampleScene.unity +++ b/src/Assets/Scenes/SampleScene.unity @@ -252,7 +252,7 @@ GameObject: - component: {fileID: 564520040} - component: {fileID: 564520039} - component: {fileID: 564520038} - m_Layer: 0 + m_Layer: 3 m_Name: Ground m_TagString: Untagged m_Icon: {fileID: 0} @@ -475,6 +475,7 @@ GameObject: - component: {fileID: 1269992424} - component: {fileID: 1269992423} - component: {fileID: 1269992422} + - component: {fileID: 1269992426} m_Layer: 0 m_Name: Player m_TagString: Untagged @@ -502,7 +503,7 @@ Rigidbody2D: m_Interpolate: 0 m_SleepingMode: 1 m_CollisionDetection: 0 - m_Constraints: 0 + m_Constraints: 4 --- !u!70 &1269992423 CapsuleCollider2D: m_ObjectHideFlags: 0 @@ -582,7 +583,56 @@ Transform: m_LocalPosition: {x: -1.1765958, y: 1.3683718, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_ConstrainProportionsScale: 0 - m_Children: [] + m_Children: + - {fileID: 1970047959} m_Father: {fileID: 0} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1269992426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1269992421} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e279b2124c44cd549ae23b0b0ad5db32, type: 3} + m_Name: + m_EditorClassIdentifier: + _rb: {fileID: 1269992422} + _groundCheck: {fileID: 1970047959} + _groundLayer: + serializedVersion: 2 + m_Bits: 8 +--- !u!1 &1970047958 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1970047959} + m_Layer: 0 + m_Name: GroundCheck + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1970047959 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1970047958} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: -1.02, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1269992425} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/src/Assets/Scripts/PlayerController.cs b/src/Assets/Scripts/PlayerController.cs new file mode 100644 index 0000000..849be3a --- /dev/null +++ b/src/Assets/Scripts/PlayerController.cs @@ -0,0 +1,39 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class PlayerController : MonoBehaviour +{ + private float _horizontal; + private float _speed = 8f; + private float _jumpingPower = 16f; + + [SerializeField] private Rigidbody2D _rb; + [SerializeField] private Transform _groundCheck; + [SerializeField] private LayerMask _groundLayer; + + void Update() + { + _horizontal = Input.GetAxisRaw("Horizontal"); + + if (Input.GetButtonDown("Jump") && IsGrounded()) + { + _rb.velocity = new Vector2(_rb.velocity.x, _jumpingPower); + } + + if (Input.GetButtonDown("Jump") && _rb.velocity.y > 0f) + { + _rb.velocity = new Vector2(_rb.velocity.x, _rb.velocity.y * 0.5f); + } + } + + private void FixedUpdate() + { + _rb.velocity = new Vector2(_horizontal * _speed, _rb.velocity.y); + } + + private bool IsGrounded() + { + return Physics2D.OverlapCircle(_groundCheck.position, 0.2f, _groundLayer); + } +} diff --git a/src/Assets/Scripts/PlayerController.cs.meta b/src/Assets/Scripts/PlayerController.cs.meta new file mode 100644 index 0000000..2ea7ad2 --- /dev/null +++ b/src/Assets/Scripts/PlayerController.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e279b2124c44cd549ae23b0b0ad5db32 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/src/ProjectSettings/TagManager.asset b/src/ProjectSettings/TagManager.asset index 1c92a78..f06d1de 100644 --- a/src/ProjectSettings/TagManager.asset +++ b/src/ProjectSettings/TagManager.asset @@ -8,7 +8,7 @@ TagManager: - Default - TransparentFX - Ignore Raycast - - + - Ground - Water - UI -