ОТВЕТ:
Вся проблема была в том, что я изменял размер кубов при одной камере, а бегал и наблюдал их при другой, поэтому и возник этот баг. Решил я его с помощью этого скрипта:
Синтаксис:
Используется csharp
GameObject[] go = GameObject.FindGameObjectsWithTag("Saved");
for (int i = 0; i < go.Length; i++)
{
go[i].GetComponent<MeshFilter>().mesh.RecalculateBounds();
}
for (int i = 0; i < go.Length; i++)
{
go[i].GetComponent<MeshFilter>().mesh.RecalculateBounds();
}
Saved - это таг объектов, которым я изменял размер.
Я запускаю этот скрипт после того, как меняю камеру и создаю ферст персон!!!
Сам вопрос:
Я динамически изменяю размер объекта(куба) вот так:
Синтаксис:
Используется csharp
GUI.Box(new Rect(Screen.width - 110, 10, 100, 125), "Размер");
toolbarInt = GUI.Toolbar (new Rect (Screen.width - 105, 35, 90, 20), toolbarInt, toolbarStrings);
if (GUI.Button(new Rect(Screen.width - 105, 60, 90, 20), "X"))
{
if (toolbarInt == 0)
target.transform.localScale += new Vector3(0.5f, 0, 0);
else
if (target.transform.localScale.x > 0.5f)
target.transform.localScale += new Vector3(-0.5f, 0, 0);
}
if (GUI.Button(new Rect(Screen.width - 105, 85, 90, 20), "Y"))
{
if (toolbarInt == 0)
target.transform.localScale += new Vector3(0, 0.5f, 0);
else
if (target.transform.localScale.y > 0.5f)
target.transform.localScale += new Vector3(0, -0.5f, 0);
}
if (GUI.Button(new Rect(Screen.width - 105, 110, 90, 20), "Z"))
{
if (toolbarInt == 0)
target.transform.localScale += new Vector3(0, 0, 0.5f);
else
if (target.transform.localScale.z > 0.5f)
target.transform.localScale += new Vector3(0, 0, -0.5f);
}
toolbarInt = GUI.Toolbar (new Rect (Screen.width - 105, 35, 90, 20), toolbarInt, toolbarStrings);
if (GUI.Button(new Rect(Screen.width - 105, 60, 90, 20), "X"))
{
if (toolbarInt == 0)
target.transform.localScale += new Vector3(0.5f, 0, 0);
else
if (target.transform.localScale.x > 0.5f)
target.transform.localScale += new Vector3(-0.5f, 0, 0);
}
if (GUI.Button(new Rect(Screen.width - 105, 85, 90, 20), "Y"))
{
if (toolbarInt == 0)
target.transform.localScale += new Vector3(0, 0.5f, 0);
else
if (target.transform.localScale.y > 0.5f)
target.transform.localScale += new Vector3(0, -0.5f, 0);
}
if (GUI.Button(new Rect(Screen.width - 105, 110, 90, 20), "Z"))
{
if (toolbarInt == 0)
target.transform.localScale += new Vector3(0, 0, 0.5f);
else
if (target.transform.localScale.z > 0.5f)
target.transform.localScale += new Vector3(0, 0, -0.5f);
}
Проблема: Все это дело наблюдает фёрст персон контроллер, но если камера уходит в строну(увеличенный объект-куб еще в поле зрения), то текстура куба пропадает. Тень остается и по нему еще можно бегать.
Вопрос: Как правильно изменять размер объекта динамически чтобы таких проблем не наблюдать?
З.Ы. Если менять размер объекта в самом редакторе, то проблем с отображением текстур куба не наблюдается при любых поворотах камеры.
Видел подобную тему на англ. форумах, но ответов там не было.