Refactor way to change character
This commit is contained in:
parent
9809f68561
commit
8ffc3bf763
@ -12,4 +12,4 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 6586e6eccc6a6524f8306b84b5bce41e, type: 3}
|
m_Script: {fileID: 11500000, guid: 6586e6eccc6a6524f8306b84b5bce41e, type: 3}
|
||||||
m_Name: Character-Blue
|
m_Name: Character-Blue
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
visual: {fileID: 787892284532640699, guid: fee6a0905f76ca9429469e6fc24d9152, type: 3}
|
visual: {fileID: -4413060711985458707, guid: fee6a0905f76ca9429469e6fc24d9152, type: 3}
|
||||||
|
|||||||
@ -12,4 +12,4 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 6586e6eccc6a6524f8306b84b5bce41e, type: 3}
|
m_Script: {fileID: 11500000, guid: 6586e6eccc6a6524f8306b84b5bce41e, type: 3}
|
||||||
m_Name: Character-Green
|
m_Name: Character-Green
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
visual: {fileID: 4837197990537739891, guid: a38b7af5e2dfcd14e8742dfa865ac642, type: 3}
|
visual: {fileID: 3720866698639095966, guid: a38b7af5e2dfcd14e8742dfa865ac642, type: 3}
|
||||||
|
|||||||
@ -12,4 +12,4 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 6586e6eccc6a6524f8306b84b5bce41e, type: 3}
|
m_Script: {fileID: 11500000, guid: 6586e6eccc6a6524f8306b84b5bce41e, type: 3}
|
||||||
m_Name: Character-Red
|
m_Name: Character-Red
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
visual: {fileID: 5794434337033297906, guid: 0846afb1b6dd56049bc60c2f2398b00a, type: 3}
|
visual: {fileID: -4496310365104306180, guid: 0846afb1b6dd56049bc60c2f2398b00a, type: 3}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ GameObject:
|
|||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 787892284532640699}
|
- component: {fileID: 787892284532640699}
|
||||||
|
- component: {fileID: -4413060711985458707}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: CharacterVisual-Blue
|
m_Name: CharacterVisual-Blue
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@ -32,6 +33,19 @@ Transform:
|
|||||||
- {fileID: 4036086214640701615}
|
- {fileID: 4036086214640701615}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &-4413060711985458707
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1783183207727006741}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 4224d6107d5e7894693e80f4571e0d59, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
shootingPoint: {fileID: 0}
|
||||||
--- !u!1 &2663764682251594756
|
--- !u!1 &2663764682251594756
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@ -9,6 +9,7 @@ GameObject:
|
|||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 4837197990537739891}
|
- component: {fileID: 4837197990537739891}
|
||||||
|
- component: {fileID: 3720866698639095966}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: CharacterVisual-Green
|
m_Name: CharacterVisual-Green
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@ -32,6 +33,19 @@ Transform:
|
|||||||
- {fileID: 3576563661194587730}
|
- {fileID: 3576563661194587730}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &3720866698639095966
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1993324788531503186}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 4224d6107d5e7894693e80f4571e0d59, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
shootingPoint: {fileID: 0}
|
||||||
--- !u!1 &5256027320013452675
|
--- !u!1 &5256027320013452675
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@ -9,6 +9,7 @@ GameObject:
|
|||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 5794434337033297906}
|
- component: {fileID: 5794434337033297906}
|
||||||
|
- component: {fileID: -4496310365104306180}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: CharacterVisual-Red
|
m_Name: CharacterVisual-Red
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@ -32,6 +33,19 @@ Transform:
|
|||||||
- {fileID: 1647310808306953429}
|
- {fileID: 1647310808306953429}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &-4496310365104306180
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 5187731018528474026}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 4224d6107d5e7894693e80f4571e0d59, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
shootingPoint: {fileID: 0}
|
||||||
--- !u!1 &5507699080222957821
|
--- !u!1 &5507699080222957821
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
@ -533,6 +533,8 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: d673274af6c36104abfc3cb26d0d9d80, type: 3}
|
m_Script: {fileID: 11500000, guid: d673274af6c36104abfc3cb26d0d9d80, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
|
character: {fileID: 3771630860942019281}
|
||||||
|
shootingPoint: {fileID: 0}
|
||||||
speed: 8
|
speed: 8
|
||||||
jumpVelocity: 40
|
jumpVelocity: 40
|
||||||
groundLayer:
|
groundLayer:
|
||||||
@ -544,7 +546,6 @@ MonoBehaviour:
|
|||||||
- {fileID: 11400000, guid: 64632c3f35ba931498cb6403c3064410, type: 2}
|
- {fileID: 11400000, guid: 64632c3f35ba931498cb6403c3064410, type: 2}
|
||||||
- {fileID: 11400000, guid: ed8b37ae4c6cc2e4ca39d8fdc571beca, type: 2}
|
- {fileID: 11400000, guid: ed8b37ae4c6cc2e4ca39d8fdc571beca, type: 2}
|
||||||
- {fileID: 11400000, guid: 669eb3734bbebe24f8e7188e39e51011, type: 2}
|
- {fileID: 11400000, guid: 669eb3734bbebe24f8e7188e39e51011, type: 2}
|
||||||
visualTransform: {fileID: 3771630860942019280}
|
|
||||||
--- !u!114 &1094939062
|
--- !u!114 &1094939062
|
||||||
MonoBehaviour:
|
MonoBehaviour:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -2938,6 +2939,17 @@ Transform:
|
|||||||
m_CorrespondingSourceObject: {fileID: 787892284532640699, guid: fee6a0905f76ca9429469e6fc24d9152, type: 3}
|
m_CorrespondingSourceObject: {fileID: 787892284532640699, guid: fee6a0905f76ca9429469e6fc24d9152, type: 3}
|
||||||
m_PrefabInstance: {fileID: 3771630860942019279}
|
m_PrefabInstance: {fileID: 3771630860942019279}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
--- !u!114 &3771630860942019281 stripped
|
||||||
|
MonoBehaviour:
|
||||||
|
m_CorrespondingSourceObject: {fileID: -4413060711985458707, guid: fee6a0905f76ca9429469e6fc24d9152, type: 3}
|
||||||
|
m_PrefabInstance: {fileID: 3771630860942019279}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 4224d6107d5e7894693e80f4571e0d59, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
--- !u!1660057539 &9223372036854775807
|
--- !u!1660057539 &9223372036854775807
|
||||||
SceneRoots:
|
SceneRoots:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
|||||||
10
Assets/Scripts/Characters/CharacterObject.cs
Normal file
10
Assets/Scripts/Characters/CharacterObject.cs
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public class CharacterObject : MonoBehaviour
|
||||||
|
{
|
||||||
|
[SerializeField] private Transform shootingPoint;
|
||||||
|
|
||||||
|
public Transform GetShootingPoint() => shootingPoint;
|
||||||
|
}
|
||||||
11
Assets/Scripts/Characters/CharacterObject.cs.meta
Normal file
11
Assets/Scripts/Characters/CharacterObject.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4224d6107d5e7894693e80f4571e0d59
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -5,7 +5,7 @@ using UnityEngine;
|
|||||||
[CreateAssetMenu(fileName = "Character", menuName = "ScriptableObjects/CharacterSO")]
|
[CreateAssetMenu(fileName = "Character", menuName = "ScriptableObjects/CharacterSO")]
|
||||||
public class CharacterSO : ScriptableObject
|
public class CharacterSO : ScriptableObject
|
||||||
{
|
{
|
||||||
[SerializeField] private Transform visual;
|
[SerializeField] private CharacterObject visual;
|
||||||
|
|
||||||
public Transform Visual => visual;
|
public CharacterObject Visual => visual;
|
||||||
}
|
}
|
||||||
@ -10,6 +10,7 @@ public class PlayerInputHandler : MonoBehaviour
|
|||||||
{
|
{
|
||||||
public event EventHandler OnJumpTrigger;
|
public event EventHandler OnJumpTrigger;
|
||||||
public event EventHandler OnChangeCharacterTrigger;
|
public event EventHandler OnChangeCharacterTrigger;
|
||||||
|
public event EventHandler OnRegularAttackTrigger;
|
||||||
|
|
||||||
public float MoveAxis { get; private set; }
|
public float MoveAxis { get; private set; }
|
||||||
|
|
||||||
@ -38,6 +39,8 @@ public class PlayerInputHandler : MonoBehaviour
|
|||||||
=> OnJumpTrigger?.Invoke(this, EventArgs.Empty);
|
=> OnJumpTrigger?.Invoke(this, EventArgs.Empty);
|
||||||
_input.Player.ChangeCharacter.performed += (InputAction.CallbackContext obj)
|
_input.Player.ChangeCharacter.performed += (InputAction.CallbackContext obj)
|
||||||
=> OnChangeCharacterTrigger?.Invoke(this, EventArgs.Empty);
|
=> OnChangeCharacterTrigger?.Invoke(this, EventArgs.Empty);
|
||||||
|
_input.Player.RegularAttack.performed += (InputAction.CallbackContext obj)
|
||||||
|
=> OnRegularAttackTrigger?.Invoke(this, EventArgs.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Update()
|
private void Update()
|
||||||
|
|||||||
@ -8,6 +8,8 @@ public partial class PlayerMain : MonoBehaviour
|
|||||||
{
|
{
|
||||||
public static PlayerMain Instance {get; private set;}
|
public static PlayerMain Instance {get; private set;}
|
||||||
|
|
||||||
|
[SerializeField] private CharacterObject character;
|
||||||
|
|
||||||
private PlayerInputHandler _input;
|
private PlayerInputHandler _input;
|
||||||
private Rigidbody2D _rigidbody2D;
|
private Rigidbody2D _rigidbody2D;
|
||||||
private BoxCollider2D _collider2D;
|
private BoxCollider2D _collider2D;
|
||||||
@ -33,6 +35,7 @@ public partial class PlayerMain : MonoBehaviour
|
|||||||
{
|
{
|
||||||
_input.OnJumpTrigger += Input_OnJumpTrigger;
|
_input.OnJumpTrigger += Input_OnJumpTrigger;
|
||||||
_input.OnChangeCharacterTrigger += Input_OnChangeCharacterTrigger;
|
_input.OnChangeCharacterTrigger += Input_OnChangeCharacterTrigger;
|
||||||
|
_input.OnRegularAttackTrigger += Input_OnRegularAttackTrigger;
|
||||||
|
|
||||||
UpdateCharacterVisual();
|
UpdateCharacterVisual();
|
||||||
|
|
||||||
|
|||||||
15
Assets/Scripts/Players/PlayerMain_Attack.cs
Normal file
15
Assets/Scripts/Players/PlayerMain_Attack.cs
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
public partial class PlayerMain
|
||||||
|
{
|
||||||
|
[Header("Attack")]
|
||||||
|
[SerializeField] private Transform shootingPoint;
|
||||||
|
|
||||||
|
private void Input_OnRegularAttackTrigger(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
11
Assets/Scripts/Players/PlayerMain_Attack.cs.meta
Normal file
11
Assets/Scripts/Players/PlayerMain_Attack.cs.meta
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5462dc190cd6e024a862207e392f05e6
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -8,10 +8,10 @@ public partial class PlayerMain
|
|||||||
{
|
{
|
||||||
[Header("Visual")]
|
[Header("Visual")]
|
||||||
[SerializeField] private List<CharacterSO> characters;
|
[SerializeField] private List<CharacterSO> characters;
|
||||||
[SerializeField] private Transform visualTransform;
|
|
||||||
|
|
||||||
private const float THRESHOLD = 0.01f;
|
private const float THRESHOLD = 0.01f;
|
||||||
|
|
||||||
|
private Transform _visualTransform;
|
||||||
private float _facingDir = 1f;
|
private float _facingDir = 1f;
|
||||||
private int _characterIndex;
|
private int _characterIndex;
|
||||||
|
|
||||||
@ -23,14 +23,15 @@ public partial class PlayerMain
|
|||||||
|
|
||||||
private void UpdateCharacterVisual()
|
private void UpdateCharacterVisual()
|
||||||
{
|
{
|
||||||
if(visualTransform != null)
|
if(character != null)
|
||||||
Destroy(visualTransform.gameObject);
|
Destroy(character.gameObject);
|
||||||
|
|
||||||
visualTransform = Instantiate(characters[_characterIndex].Visual, transform);
|
character = Instantiate(characters[_characterIndex].Visual, transform);
|
||||||
visualTransform.localPosition = Vector3.zero;
|
_visualTransform = character.transform;
|
||||||
Vector3 scale = visualTransform.localScale;
|
_visualTransform.localPosition = Vector3.zero;
|
||||||
|
Vector3 scale = _visualTransform.localScale;
|
||||||
scale.x *= _facingDir;
|
scale.x *= _facingDir;
|
||||||
visualTransform.localScale = scale;
|
_visualTransform.localScale = scale;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FacingDir()
|
private void FacingDir()
|
||||||
@ -38,9 +39,9 @@ public partial class PlayerMain
|
|||||||
if (_facingDir * _input.MoveAxis > -THRESHOLD)
|
if (_facingDir * _input.MoveAxis > -THRESHOLD)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Vector3 scale = visualTransform.localScale;
|
Vector3 scale = _visualTransform.localScale;
|
||||||
_facingDir *= -1f;
|
_facingDir *= -1f;
|
||||||
scale.x *= -1f;
|
scale.x *= -1f;
|
||||||
visualTransform.localScale = scale;
|
_visualTransform.localScale = scale;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user