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_Name: Character-Blue
|
||||
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_Name: Character-Green
|
||||
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_Name: Character-Red
|
||||
m_EditorClassIdentifier:
|
||||
visual: {fileID: 5794434337033297906, guid: 0846afb1b6dd56049bc60c2f2398b00a, type: 3}
|
||||
visual: {fileID: -4496310365104306180, guid: 0846afb1b6dd56049bc60c2f2398b00a, type: 3}
|
||||
|
||||
@ -9,6 +9,7 @@ GameObject:
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 787892284532640699}
|
||||
- component: {fileID: -4413060711985458707}
|
||||
m_Layer: 0
|
||||
m_Name: CharacterVisual-Blue
|
||||
m_TagString: Untagged
|
||||
@ -32,6 +33,19 @@ Transform:
|
||||
- {fileID: 4036086214640701615}
|
||||
m_Father: {fileID: 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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@ -9,6 +9,7 @@ GameObject:
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 4837197990537739891}
|
||||
- component: {fileID: 3720866698639095966}
|
||||
m_Layer: 0
|
||||
m_Name: CharacterVisual-Green
|
||||
m_TagString: Untagged
|
||||
@ -32,6 +33,19 @@ Transform:
|
||||
- {fileID: 3576563661194587730}
|
||||
m_Father: {fileID: 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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@ -9,6 +9,7 @@ GameObject:
|
||||
serializedVersion: 6
|
||||
m_Component:
|
||||
- component: {fileID: 5794434337033297906}
|
||||
- component: {fileID: -4496310365104306180}
|
||||
m_Layer: 0
|
||||
m_Name: CharacterVisual-Red
|
||||
m_TagString: Untagged
|
||||
@ -32,6 +33,19 @@ Transform:
|
||||
- {fileID: 1647310808306953429}
|
||||
m_Father: {fileID: 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
|
||||
GameObject:
|
||||
m_ObjectHideFlags: 0
|
||||
|
||||
@ -533,6 +533,8 @@ MonoBehaviour:
|
||||
m_Script: {fileID: 11500000, guid: d673274af6c36104abfc3cb26d0d9d80, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier:
|
||||
character: {fileID: 3771630860942019281}
|
||||
shootingPoint: {fileID: 0}
|
||||
speed: 8
|
||||
jumpVelocity: 40
|
||||
groundLayer:
|
||||
@ -544,7 +546,6 @@ MonoBehaviour:
|
||||
- {fileID: 11400000, guid: 64632c3f35ba931498cb6403c3064410, type: 2}
|
||||
- {fileID: 11400000, guid: ed8b37ae4c6cc2e4ca39d8fdc571beca, type: 2}
|
||||
- {fileID: 11400000, guid: 669eb3734bbebe24f8e7188e39e51011, type: 2}
|
||||
visualTransform: {fileID: 3771630860942019280}
|
||||
--- !u!114 &1094939062
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 0
|
||||
@ -2938,6 +2939,17 @@ Transform:
|
||||
m_CorrespondingSourceObject: {fileID: 787892284532640699, guid: fee6a0905f76ca9429469e6fc24d9152, type: 3}
|
||||
m_PrefabInstance: {fileID: 3771630860942019279}
|
||||
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
|
||||
SceneRoots:
|
||||
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")]
|
||||
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 OnChangeCharacterTrigger;
|
||||
public event EventHandler OnRegularAttackTrigger;
|
||||
|
||||
public float MoveAxis { get; private set; }
|
||||
|
||||
@ -38,6 +39,8 @@ public class PlayerInputHandler : MonoBehaviour
|
||||
=> OnJumpTrigger?.Invoke(this, EventArgs.Empty);
|
||||
_input.Player.ChangeCharacter.performed += (InputAction.CallbackContext obj)
|
||||
=> OnChangeCharacterTrigger?.Invoke(this, EventArgs.Empty);
|
||||
_input.Player.RegularAttack.performed += (InputAction.CallbackContext obj)
|
||||
=> OnRegularAttackTrigger?.Invoke(this, EventArgs.Empty);
|
||||
}
|
||||
|
||||
private void Update()
|
||||
|
||||
@ -8,6 +8,8 @@ public partial class PlayerMain : MonoBehaviour
|
||||
{
|
||||
public static PlayerMain Instance {get; private set;}
|
||||
|
||||
[SerializeField] private CharacterObject character;
|
||||
|
||||
private PlayerInputHandler _input;
|
||||
private Rigidbody2D _rigidbody2D;
|
||||
private BoxCollider2D _collider2D;
|
||||
@ -33,6 +35,7 @@ public partial class PlayerMain : MonoBehaviour
|
||||
{
|
||||
_input.OnJumpTrigger += Input_OnJumpTrigger;
|
||||
_input.OnChangeCharacterTrigger += Input_OnChangeCharacterTrigger;
|
||||
_input.OnRegularAttackTrigger += Input_OnRegularAttackTrigger;
|
||||
|
||||
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")]
|
||||
[SerializeField] private List<CharacterSO> characters;
|
||||
[SerializeField] private Transform visualTransform;
|
||||
|
||||
private const float THRESHOLD = 0.01f;
|
||||
|
||||
private Transform _visualTransform;
|
||||
private float _facingDir = 1f;
|
||||
private int _characterIndex;
|
||||
|
||||
@ -23,14 +23,15 @@ public partial class PlayerMain
|
||||
|
||||
private void UpdateCharacterVisual()
|
||||
{
|
||||
if(visualTransform != null)
|
||||
Destroy(visualTransform.gameObject);
|
||||
if(character != null)
|
||||
Destroy(character.gameObject);
|
||||
|
||||
visualTransform = Instantiate(characters[_characterIndex].Visual, transform);
|
||||
visualTransform.localPosition = Vector3.zero;
|
||||
Vector3 scale = visualTransform.localScale;
|
||||
character = Instantiate(characters[_characterIndex].Visual, transform);
|
||||
_visualTransform = character.transform;
|
||||
_visualTransform.localPosition = Vector3.zero;
|
||||
Vector3 scale = _visualTransform.localScale;
|
||||
scale.x *= _facingDir;
|
||||
visualTransform.localScale = scale;
|
||||
_visualTransform.localScale = scale;
|
||||
}
|
||||
|
||||
private void FacingDir()
|
||||
@ -38,9 +39,9 @@ public partial class PlayerMain
|
||||
if (_facingDir * _input.MoveAxis > -THRESHOLD)
|
||||
return;
|
||||
|
||||
Vector3 scale = visualTransform.localScale;
|
||||
Vector3 scale = _visualTransform.localScale;
|
||||
_facingDir *= -1f;
|
||||
scale.x *= -1f;
|
||||
visualTransform.localScale = scale;
|
||||
_visualTransform.localScale = scale;
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user