В базе кода Unity я видел это:
// the game object currently has no mesh attached
MeshFilter mFilter = gameObject.AddComponent<MeshFilter>();
gameObject.AddComponent<MeshRenderer>();
// no problem so far
mFilter.mesh = MakeASmallQuadMesh(0.1f);
// great stuff
mFilter.mesh.bounds = SomeSpecificBounds();
// what ?
Функция "MakeASmallQuadMesh" имеет обычный вполне нормальный код для создания меша, поэтому
Mesh mesh = new Mesh();
mesh.SetVertices(verts);
mesh.SetIndices(indices);
mesh.SetUVs(0, uvs);
mesh.RecalculateNormals();
mesh.RecalculateBounds();
return mesh;
Не беспокойтесь. Получается квадрат диаметром 10 см.
Но как насчет строки кода
mFilter.mesh.bounds = SomeSpecificBounds();
Я был поражен, узнав, что вы можете установить mesh.bounds, я предполагал, что он будет доступен только для чтения.
Какой возможный «смысл» в «установке» границ? Это было бы примерно так: в кабинете врача есть письменные измерения, в которых говорится, что Джейн 6 футов. Вы меняете запись на 5 футов 10 дюймов. Конечно, рост Джейн совсем не меняется. Вы просто странным образом ошиблись в записи.
Может быть так: границы меша используются разными, а то и многими системами Unity. (Отбраковка и т. д.) Может ли шаблон быть таким, что, «принуждая» границы, подобные этому (границы теперь «совершенно неверны» для объекта - это просто какое-то значение, которое вы вставили туда) программист хотел (для некоторых причина) Система Unity (скажем, отбраковка) для использования этих принудительных, бессмысленных (по отношению к фактическому объекту) значений?
Дикое предположение, может быть, есть шаблон (я никогда не слышал), где вы «заставляете» границы объекта A быть такими же, как у объекта B - по какой-то причине я не могу догадаться?
Что может быть закономерностью/причиной здесь?
Я бы просто предположил, что это основная ошибка, но предположения убивают.
RecalculateBounds();
, я ожидаю получить ограничительную рамку с высотой0
, так как сетка содержит только одну плоскую плоскость. Так что, возможно, в примере они просто хотели (по какой-то причине) иметь границы MinMax, отличные от0
. Также естьExpand
иSetMinMax
, которые, я думаю, говорят в пользу теории 3. - person derHugo   schedule 29.03.2019