存档
This commit is contained in:
@@ -209,6 +209,14 @@ public class LakeLineDrawer : ImmediateModeShapeDrawer
|
||||
{
|
||||
if (targetButtonPrefab == null || targetButtonsParent == null) return;
|
||||
|
||||
// 如果按钮已经存在,直接显示
|
||||
if (targetButtons.ContainsKey(target))
|
||||
{
|
||||
targetButtons[target].gameObject.SetActive(true);
|
||||
return;
|
||||
}
|
||||
|
||||
// 创建新按钮
|
||||
var buttonObj = Instantiate(targetButtonPrefab, targetButtonsParent);
|
||||
var button = buttonObj.GetComponent<Button>();
|
||||
|
||||
@@ -216,7 +224,7 @@ public class LakeLineDrawer : ImmediateModeShapeDrawer
|
||||
var text = buttonObj.GetComponentInChildren<Text>();
|
||||
if (text != null)
|
||||
{
|
||||
text.text = string.IsNullOrEmpty(target.name) ? $"目标 {targetPoints.IndexOf(target) + 1}" : target.name;
|
||||
text.text = string.IsNullOrEmpty(target.name) ? "目标" : target.name;
|
||||
}
|
||||
|
||||
// 设置按钮颜色
|
||||
@@ -233,6 +241,26 @@ public class LakeLineDrawer : ImmediateModeShapeDrawer
|
||||
targetButtons[target] = button;
|
||||
}
|
||||
|
||||
private void MoveToTarget(TargetPoint target)
|
||||
{
|
||||
float step = fieldSize / (pointCount - 1);
|
||||
float halfField = fieldSize * 0.5f;
|
||||
float halfVisible = visibleAreaSize * 0.5f;
|
||||
|
||||
// 计算目标的世界坐标
|
||||
float targetX = -halfField + target.gridPosition.x * step;
|
||||
float targetZ = -halfField + target.gridPosition.y * step;
|
||||
|
||||
// 设置相机位置,使目标在视野中心
|
||||
fieldOffset.x = -targetX;
|
||||
fieldOffset.y = -targetZ;
|
||||
|
||||
// 确保不会超出边界
|
||||
float maxOffset = fieldSize * 0.5f - halfVisible * 0.8f;
|
||||
fieldOffset.x = Mathf.Clamp(fieldOffset.x, -maxOffset, maxOffset);
|
||||
fieldOffset.y = Mathf.Clamp(fieldOffset.y, -maxOffset, maxOffset);
|
||||
}
|
||||
|
||||
private void ClearTargetButtons()
|
||||
{
|
||||
// 清除所有目标按钮
|
||||
|
||||
Reference in New Issue
Block a user