using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Serialization; public partial class PlayerMain { [Header("Visual")] [SerializeField] private List characters; [SerializeField] private Transform visualTransform; private const float THRESHOLD = 0.01f; 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(visualTransform != null) Destroy(visualTransform.gameObject); visualTransform = Instantiate(characters[_characterIndex].Visual, 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; } }