(client) feat:实现摄像机跟踪,柏林噪声改为单例,角色渲染树支持指定像素密度

chore:将UI的Tick进行了显示时显式添加并作为预制体
This commit is contained in:
m0_75251201
2025-08-05 14:54:30 +08:00
parent 3c9be3a30c
commit 6a222d82b2
29 changed files with 2217 additions and 3262 deletions

View File

@ -14,6 +14,8 @@ namespace Entity
public Entity entity;
private bool _select = false;
public static Vector3 minimum=new(0.5f,0.5f,0.5f);
public void Init()
{
@ -42,20 +44,32 @@ namespace Entity
/// </returns>
public Vector3 GetSize()
{
// 获取所有子对象的 Renderer 组件
var renderers = body.GetComponentsInChildren<Renderer>();
// 如果没有找到任何 Renderer返回一个默认值 (-1, -1, -1)
if (renderers.Length == 0)
{
return new(-1, -1);
return minimum;
}
// 初始化 totalBounds 为第一个 Renderer 的 bounds
var totalBounds = renderers[0].bounds;
// 遍历剩余的 Renderer将它们的 bounds 合并到 totalBounds 中
for (var i = 1; i < renderers.Length; i++)
{
totalBounds.Encapsulate(renderers[i].bounds);
}
// 获取合并后的包围盒的大小
var size = totalBounds.size;
// 确保每个维度的大小都不小于 0.5
size.x = Mathf.Max(size.x, 0.5f);
size.y = Mathf.Max(size.y, 0.5f);
size.z = Mathf.Max(size.z, 0.5f);
return size;
}
@ -87,11 +101,11 @@ namespace Entity
{
var result = new List<(string name, UnityAction callback)>();
if (entity.PlayerControlled)
result.Add(("结束操控", () => entity.PlayerControlled = false));
result.Add(("结束操控", EndControl));
else
result.Add(("手动操控", () => entity.PlayerControlled = true));
result.Add(("手动操控", StartControl));
result.Add(("杀死", () => entity.Kill()));
result.Add(("变成笨蛋", () => BecomeDefault()));
result.Add(("变成笨蛋", BecomeDefault));
return result;
}
@ -100,5 +114,17 @@ namespace Entity
entity.Kill();
Managers.EntityManage.Instance.GenerateDefaultEntity(entity.Position);
}
private void StartControl()
{
entity.PlayerControlled = true;
CameraControl.CameraControl.Instance.focusedEntity=entity;
}
private void EndControl()
{
entity.PlayerControlled = false;
CameraControl.CameraControl.Instance.focusedEntity=null;
}
}
}