using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Serialization; public partial class PlayerMain { [Header("Visual")] [SerializeField] private List characters; private const float THRESHOLD = 0.01f; private Transform _visualTransform; private float _facingDir = 1f; private int _characterIndex; private void Input_OnChangeCharacterTrigger(object sender, EventArgs e) { _characterIndex = (_characterIndex + 1) % characters.Count; UpdateCharacterVisual(); } private void UpdateCharacterVisual() { if(character != null) Destroy(character.gameObject); character = Instantiate(characters[_characterIndex].Visual, transform); _visualTransform = character.transform; _visualTransform.localPosition = Vector3.zero; Vector3 scale = _visualTransform.localScale; scale.x *= _facingDir; _visualTransform.localScale = scale; } private void FacingDir() { if (_facingDir * _input.MoveAxis > -THRESHOLD) return; Vector3 scale = _visualTransform.localScale; _facingDir *= -1f; scale.x *= -1f; _visualTransform.localScale = scale; } }