Copie depuis Unity VCS vers GitHub
This commit is contained in:
@@ -0,0 +1,19 @@
|
||||
using System;
|
||||
using CharacterCustomizationTool.Extensions;
|
||||
using UnityEngine;
|
||||
|
||||
namespace CharacterCustomizationTool.FaceManagement
|
||||
{
|
||||
[Serializable]
|
||||
public class FaceMesh
|
||||
{
|
||||
public FaceType Type;
|
||||
public Mesh Mesh;
|
||||
|
||||
public FaceMesh(Mesh mesh)
|
||||
{
|
||||
Type = Enum.Parse<FaceType>(mesh.name.Split("_")[2].ToCapital());
|
||||
Mesh = mesh;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 61031a315ae149fd92a6cbff53bb99a8
|
||||
timeCreated: 1734350612
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 304841
|
||||
packageName: Creative Characters FREE - Animated Low Poly 3D Models
|
||||
packageVersion: 2.2
|
||||
assetPath: Assets/ithappy/Creative_Characters_FREE/Scripts/FaceManagement/FaceMesh.cs
|
||||
uploadId: 780839
|
||||
@@ -0,0 +1,58 @@
|
||||
using System;
|
||||
using System.Linq;
|
||||
using CharacterCustomizationTool.Extensions;
|
||||
using UnityEngine;
|
||||
|
||||
namespace CharacterCustomizationTool.FaceManagement
|
||||
{
|
||||
public class FacePicker : MonoBehaviour
|
||||
{
|
||||
[SerializeField, HideInInspector]
|
||||
private FaceMesh[] _faceMeshes;
|
||||
|
||||
private SkinnedMeshRenderer _faceRenderer;
|
||||
|
||||
public FaceType ActiveFace => Enum.Parse<FaceType>(_faceRenderer.sharedMesh.name.Split("_")[2].ToCapital());
|
||||
|
||||
public void SetFaces(Mesh[] faceMeshes)
|
||||
{
|
||||
_faceMeshes = faceMeshes.Select(m => new FaceMesh(m)).ToArray();
|
||||
}
|
||||
|
||||
public bool HasFace(FaceType face)
|
||||
{
|
||||
var faceMesh = _faceMeshes.FirstOrDefault(m => m.Type == face);
|
||||
|
||||
return faceMesh != null;
|
||||
}
|
||||
|
||||
public void PickFace(FaceType faceType)
|
||||
{
|
||||
var faceMesh = _faceMeshes.FirstOrDefault(m => m.Type == faceType);
|
||||
if (faceMesh == null)
|
||||
{
|
||||
throw new Exception($"Face not found: {faceType.ToString()}.");
|
||||
}
|
||||
|
||||
_faceRenderer.sharedMesh = faceMesh.Mesh;
|
||||
}
|
||||
|
||||
private void Start()
|
||||
{
|
||||
ValidateFields();
|
||||
}
|
||||
|
||||
private void OnValidate()
|
||||
{
|
||||
ValidateFields();
|
||||
}
|
||||
|
||||
private void ValidateFields()
|
||||
{
|
||||
_faceRenderer = transform
|
||||
.Cast<Transform>()
|
||||
.First(t => t.name.StartsWith("Face"))
|
||||
.GetComponent<SkinnedMeshRenderer>();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
fileFormatVersion: 2
|
||||
guid: a69a902533bc5af478efff13cc47894f
|
||||
MonoImporter:
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
defaultReferences: []
|
||||
executionOrder: 0
|
||||
icon: {instanceID: 0}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 304841
|
||||
packageName: Creative Characters FREE - Animated Low Poly 3D Models
|
||||
packageVersion: 2.2
|
||||
assetPath: Assets/ithappy/Creative_Characters_FREE/Scripts/FaceManagement/FacePicker.cs
|
||||
uploadId: 780839
|
||||
@@ -0,0 +1,18 @@
|
||||
namespace CharacterCustomizationTool.FaceManagement
|
||||
{
|
||||
public enum FaceType
|
||||
{
|
||||
Anger,
|
||||
Angry,
|
||||
Compassion,
|
||||
Confuse,
|
||||
Evil,
|
||||
Happy,
|
||||
Impatience,
|
||||
Madness,
|
||||
Neutral,
|
||||
Sad,
|
||||
Surprised,
|
||||
Usual,
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
fileFormatVersion: 2
|
||||
guid: de89b91bb3f34946abf58874cd21d7fd
|
||||
timeCreated: 1733506211
|
||||
AssetOrigin:
|
||||
serializedVersion: 1
|
||||
productId: 304841
|
||||
packageName: Creative Characters FREE - Animated Low Poly 3D Models
|
||||
packageVersion: 2.2
|
||||
assetPath: Assets/ithappy/Creative_Characters_FREE/Scripts/FaceManagement/FaceType.cs
|
||||
uploadId: 780839
|
||||
Reference in New Issue
Block a user