Показать сообщение отдельно
Старый 30.04.2014, 13:56   #1
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Локальные координаты, и не только

1. написал такой код:
	void Start () {
        Transform current = transform;
        
        for(int i=0;i<100;++i)
        {
            GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
            cube.transform.position = new Vector3(1.1f * i, 0, 0);
            cube.transform.Rotate(new Vector3((float)Random.Range(0, 360), (float)Random.Range(0, 360), (float)Random.Range(0, 360)));
            cube.transform.parent = current;
            current = cube.transform;

            cubes.Add(cube);
        }
	}
здесь каждый следующий кубик должен быть чуть правее предыдущего.
но у меня это работает только когда позицию я задаю как
cube.transform.position = new Vector3(1.1f * i, 0, 0);
пробовал менять loclaPosition - та же фигня. как мне просто создать ряд кубиков каждый из которых парент предыдущего?

2.
как я понимаю, GameObject.CreatePrimitive(PrimitiveType.Cube) - создает уникальный куб. мне же достаточно одного меша, но много разных матриц трансформаций. можно как то сказать юнити что я хочу один меш, и все эти объекты чтобы использовали его (не переключали ib/vb)?
(Offline)
 
Ответить с цитированием