Показать сообщение отдельно
Старый 14.01.2013, 00:21   #999
mauNgerS
Разработчик
 
Аватар для mauNgerS
 
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений
(для 670 пользователей)
Ответ: Вопросы от новичка

Вот такой вод код создаёт новый гамеобжект и помещает в него все меши.

Но все меши помещаются в 0,0,0 как сохранить их положение и размер которые задаются перед соединением?


GameObject map1 = GameObject.CreatePrimitive(PrimitiveType.Cube);        
map1.name = "map1";        
map1.transform.position = new Vector3(0, 0, 0);
Destroy(map1.GetComponent<Collider>());
MeshRenderer mr1 = map1.GetComponent<MeshRenderer>();
mr1.material = (Material)Resources.Load("Model/Materials/wood",typeof(Material));
        
Mesh m1 = map1.GetComponent<MeshFilter>().mesh;
m1.Clear();

CombineInstance[] instances = new CombineInstance[i];
i=0;
for (
int x = 0; x < 38; x++)
{
    for (
int z = 0; z < 38; z++)
    {
        if (
LMap[x,z]<1)
        {
            
x1=x+0.5f;
            
z1=z+0.5f;
            
s1=Random.Range(0, 0.5f);
            
groundPoint = GetHeight(ref x1,ref z1);
            
GameObject inst = (GameObject)Instantiate(Resources.Load("Model/wood", typeof(GameObject)));
            
inst.transform.eulerAngles = new Vector3( Random.Range(0, 15)-90, Random.Range(0, 360), Random.Range(0, 15));
            
inst.transform.position = groundPoint;                
            
inst.transform.localScale += new Vector3(s1, Random.Range(0, 0.5f), s1);
            
Mesh me = inst.GetComponent<MeshFilter>().mesh;
            
instances[i].mesh = me;
            
instances[i].transform = Matrix4x4.identity;
            
i=i+1;
        }
    }
}
m1.CombineMeshes(instances); 
__________________
(Offline)
 
Ответить с цитированием