119 lines
4.3 KiB
C#
119 lines
4.3 KiB
C#
//using System.Collections.Generic;
|
|
//using Unity.Collections;
|
|
//using UnityEngine;
|
|
//namespace X.Rendering.Feature
|
|
//{
|
|
// public class XRenderFeatureManager : MonoBehaviour
|
|
// {
|
|
// public static XRenderFeatureManager Instance
|
|
// {
|
|
// get; private set;
|
|
// }
|
|
|
|
// #region CapsuleAO
|
|
// public NativeArray<Character> CharacterArray;
|
|
// public NativeArray<Capsule> CapsuleArray;
|
|
|
|
// public Transform TestLightTrans;
|
|
// public Transform TestCharacterTrans;
|
|
// public float TestW;
|
|
|
|
// private Dictionary<Transform, CapsuleCollider[]> characterTransform2CapsuleCollider = new();
|
|
// private int capsuleColliderCount = 0;
|
|
|
|
// public void AddCapsuleAOCharacter(Transform transform)
|
|
// {
|
|
// var oldCapsuleArray = CapsuleArray;
|
|
// var oldCharacterArray = CharacterArray;
|
|
|
|
// var capsules = transform.GetComponentsInChildren<CapsuleCollider>(true);
|
|
// characterTransform2CapsuleCollider.Add(transform, capsules);
|
|
// capsuleColliderCount += capsules.Length;
|
|
// CapsuleArray = new (capsuleColliderCount, Allocator.Persistent);
|
|
// CharacterArray = new (characterTransform2CapsuleCollider.Count, Allocator.Persistent);
|
|
|
|
// if (oldCharacterArray.IsCreated)
|
|
// {
|
|
// oldCharacterArray.Dispose();
|
|
// oldCapsuleArray.Dispose();
|
|
// }
|
|
// }
|
|
|
|
// public void RemoveCapsuleAOCharacter(Transform transform)
|
|
// {
|
|
// capsuleColliderCount -= characterTransform2CapsuleCollider[transform].Length;
|
|
// characterTransform2CapsuleCollider.Remove(transform);
|
|
// var oldCapsuleArray = CapsuleArray;
|
|
// var oldCharacterArray = CharacterArray;
|
|
|
|
// CapsuleArray = new(capsuleColliderCount, Allocator.Persistent);
|
|
// CharacterArray = new(characterTransform2CapsuleCollider.Count, Allocator.Persistent);
|
|
|
|
// if (oldCharacterArray.IsCreated)
|
|
// {
|
|
// oldCharacterArray.Dispose();
|
|
// oldCapsuleArray.Dispose();
|
|
// }
|
|
// }
|
|
|
|
// #endregion
|
|
|
|
// private void Awake()
|
|
// {
|
|
// Instance = this;
|
|
// }
|
|
|
|
|
|
// private void Start()
|
|
// {
|
|
// AddCapsuleAOCharacter(TestCharacterTrans);
|
|
// }
|
|
|
|
// private void Update()
|
|
// {
|
|
// Transform transform = null;
|
|
// int capsuleArrayIndex = 0;
|
|
// int characterArrayIndex = 0;
|
|
// int startID = 0;
|
|
// Instance = this;
|
|
|
|
// foreach (var item in characterTransform2CapsuleCollider)
|
|
// {
|
|
// for (int i = 0; i < item.Value.Length; i++)
|
|
// {
|
|
// var capsule = item.Value[i];
|
|
// //capsule.direction
|
|
// var a = capsule.center - new Vector3(0, capsule.height / 2 - capsule.radius, 0);
|
|
// var b = capsule.center + new Vector3(0, capsule.height / 2 - capsule.radius, 0);
|
|
// //var a = capsule.center - new Vector3(0, capsule.height / 2, 0);
|
|
// //var b = capsule.center + new Vector3(0, capsule.height / 2, 0);
|
|
// a = capsule.transform.TransformPoint(a);
|
|
// b = capsule.transform.TransformPoint(b);
|
|
// CapsuleArray[capsuleArrayIndex++] = new()
|
|
// {
|
|
// a = a,
|
|
// b = b,
|
|
// radius = capsule.radius,
|
|
// };
|
|
// }
|
|
|
|
// if (transform != item.Key)
|
|
// {
|
|
// transform = item.Key;
|
|
// CharacterArray[characterArrayIndex++] = new()
|
|
// {
|
|
// position = transform.position,
|
|
// radius = transform.lossyScale.x,
|
|
// lightDir = -new Vector4(TestLightTrans.position.x, TestLightTrans.position.y, TestLightTrans.position.z, -TestW),
|
|
// startID = startID,
|
|
// endID = capsuleArrayIndex,
|
|
// };
|
|
// startID = capsuleArrayIndex;
|
|
// }
|
|
|
|
// }
|
|
// }
|
|
|
|
// }
|
|
//}
|