MythicalWar/Assets/P09_Modular_Humanoid/Scenes/DemoScene_Data/Scripts/EditBodyPage.cs

64 lines
2.3 KiB
C#

using P09.Modular.Humanoid.Data;
using UnityEngine;
using UnityEngine.Events;
namespace P09.Modular.Humanoid
{
public sealed class EditBodyPage : EditPage
{
[SerializeField] private HorizontalSwitcher _sexSwitcher;
[SerializeField] private HorizontalSwitcher _faceTypeSwitcher;
[SerializeField] private HorizontalSwitcher _hairStyleSwitcher;
[SerializeField] private HorizontalSwitcher _hairColorSwitcher;
[SerializeField] private HorizontalSwitcher _skinColorSwitcher;
[SerializeField] private HorizontalSwitcher _eyeColorSwitcher;
[SerializeField] private HorizontalSwitcher _facialHairSwitcher;
[SerializeField] private HorizontalSwitcher _bustSizeSwitcher;
[SerializeField] private HorizontalSwitcher _faceEmotionSwitcher;
public override void Init()
{
base.Init();
_sexSwitcher.Init(_onChangePart);
_faceTypeSwitcher.Init(_onChangePart);
_hairStyleSwitcher.Init(_onChangePart);
_hairColorSwitcher.Init(_onChangePart);
_skinColorSwitcher.Init(_onChangePart);
_eyeColorSwitcher.Init(_onChangePart);
_facialHairSwitcher.Init(_onChangePart);
_bustSizeSwitcher.Init(_onChangePart);
_faceEmotionSwitcher.Init( (editPartType, contentId) => _onChangeFaceEmotion(contentId) );
}
public override void UpdateView(bool isReset = false)
{
if(!_isActive) return;
var switchers = new[]
{
_sexSwitcher,
_faceTypeSwitcher,
_hairStyleSwitcher,
_hairColorSwitcher,
_skinColorSwitcher,
_eyeColorSwitcher,
_facialHairSwitcher,
_bustSizeSwitcher,
_faceEmotionSwitcher
};
foreach (var switcher in switchers)
{
switcher.UpdateView();
if (isReset)
{
switcher.Reset();
}
}
var sexId = DemoPageController.AvatarEditData.SexId;
_facialHairSwitcher.gameObject.SetActive(sexId == DemoPageController.MaleSexId);
_bustSizeSwitcher.gameObject.SetActive(sexId == DemoPageController.FemaleSexId);
}
}
}