Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity > Общие вопросы

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 12.01.2013, 21:51   #991
GooV
Оператор ЭВМ
 
Регистрация: 11.01.2013
Сообщений: 23
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы от новичка

Сообщение от pax Посмотреть сообщение
В стандартном примере платформера было такое решение http://u3d.as/content/unity-technolo...r-tutorial/3yF
по нажатию кнопки ни чего не открывается(((
(Offline)
 
Ответить с цитированием
Старый 12.01.2013, 22:44   #992
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

найди проект через Unity Asset Store (Window => Asset Store)
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 12.01.2013, 23:31   #993
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

по нажатию кнопки ни чего не открывается(((
Может нужна регистрация на unity3d.com? У меня все открывается.
(Offline)
 
Ответить с цитированием
Старый 12.01.2013, 23:38   #994
mauNgerS
Разработчик
 
Аватар для mauNgerS
 
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений
(для 670 пользователей)
Ответ: Вопросы от новичка

Доброго времени суток.

Интересует возможность сделать синглмеш.
Что-то типа AddMesh на блице.

В справке нашёл функцию Mesh.CombineMeshes, но не получается ей воспользоваться.

Так же в справке к данной функции указан код:
using UnityEngine;
using System.Collections;

[
RequireComponent(typeof(MeshFilter))]
[
RequireComponent(typeof(MeshRenderer))]
public class 
example : MonoBehaviour {
    
void Start() {
        
Component[] meshFilters = GetComponentsInChildren<MeshFilter>();
        
CombineInstance[] combine = new CombineInstance[meshFilters.length];
        
i = 0;
        while (
i < meshFilters.length) {
            
combine[i].mesh = meshFilters[i].sharedMesh;
            
combine[i].transform = meshFilters[i].transform.localToWorldMatrix;
            
meshFilters[i].gameObject.active = false;
            
i++;
        }
        
transform.GetComponent<MeshFilter>().mesh = new Mesh();
        
transform.GetComponent<MeshFilter>().mesh.CombineMeshes(combine);
        
transform.gameObject.active = true;
    }
} 
__________________
(Offline)
 
Ответить с цитированием
Старый 13.01.2013, 00:11   #995
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Примерно так:
Mesh oneMesh = new Mesh();
Mesh otherMesh = new Mesh();
Mesh combinedMesh = new Mesh();

CombineInstance[] instances = new CombineInstance[2];

instances[0].mesh = oneMesh;
instances[0].transform = Matrix4x4.identity;

instances[1].mesh = otherMesh;
instances[1].transform = Matrix4x4.identity;

combinedMesh.CombineMeshes(instances); 
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mauNgerS (13.01.2013)
Старый 13.01.2013, 14:16   #996
Morganolla
Бывалый
 
Аватар для Morganolla
 
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений
(для 245 пользователей)
Ответ: Вопросы от новичка

При переходе с С++ на С# я не совсем понимаю работу с массивами. Например в коде
public class StartAnimator : MonoBehaviour {
	
	public Transform[] ObjPos= new Transform[8];
	void Start () 
	{
                 ObjPos[0].position = new Vector3(-105, 281, 0.5f); // возможно здесь ошибка !!!!
.....................................................
......................................................
.......................................................
}
я создаю массив ObjPos - ссылок на объекты Transform или сами эти объекты Transform???
Если это массив ссылок, то как создать сами объекты?
Мне нужно иметь массив объектов Transform с заданным положением в пространстве, чтобы потом присваивать их другим выборочным объектам в игре...
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32
(Offline)
 
Ответить с цитированием
Старый 13.01.2013, 14:41   #997
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,158
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Вопросы от новичка

Сообщение от Morganolla Посмотреть сообщение
При переходе с С++ на С# я не совсем понимаю работу с массивами. Например в коде
public class StartAnimator : MonoBehaviour {
    
    public Transform[] ObjPos= new Transform[8];
    void Start () 
    {
                 ObjPos[0].position = new Vector3(-105, 281, 0.5f); // возможно здесь ошибка !!!!
.....................................................
......................................................
.......................................................
}
я создаю массив ObjPos - ссылок на объекты Transform или сами эти объекты Transform???
Если это массив ссылок, то как создать сами объекты?
Мне нужно иметь массив объектов Transform с заданным положением в пространстве, чтобы потом присваивать их другим выборочным объектам в игре...
Это массив ссылок на то, чего еще нет,так, как я понял, нельзя сделать объект, нужно типо так:
Vector3 pos=new Vector3(-105, 281, 0.5f);
ObjPos[0]  = Instance(transform,pos,transform.rotation) as Transform; 
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Morganolla (14.01.2013)
Старый 13.01.2013, 14:51   #998
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Сообщение от Костян Посмотреть сообщение
Vector3 pos=new Vector3(-105, 281, 0.5f);
ObjPos[0]  = Instance(transform,pos,transform.rotation) as Transform; 
Скорее

ObjPos[i] = new GameObject("MyPivot"+i).transfrom; 
А еще прокомментирую то, что если создавать массив публичным, то Unity серлиализует его. Т.е. если ты изменишь его в редакторе, то в итоге его данные будут присутствовать, а не new Transfom[8]
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Morganolla (14.01.2013)
Старый 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)
 
Ответить с цитированием
Старый 14.01.2013, 00:32   #1000
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

вместо
instances[i].transform = Matrix4x4.identity; 
поставить
instances[i].transform = inst.transform.localToWorldMatrix; 
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mauNgerS (14.01.2013)
Старый 14.01.2013, 04:04   #1001
mauNgerS
Разработчик
 
Аватар для mauNgerS
 
Регистрация: 10.10.2008
Сообщений: 501
Написано 258 полезных сообщений
(для 670 пользователей)
Ответ: Вопросы от новичка

Есть генерированный в скрипте меш.

RecalculateNormals() делает освещение правильным, расчёт тангентов делает бамп правильным.

Как на нём настроить группы сглаживания? Необходимо чтобы у всего меша была одна группа сглаживания. Без ступенек.

На блице такой же алгоритм давал необходимый результат (сразу у всего меша была одна группа сглаживания).
Миниатюры
Нажмите на изображение для увеличения
Название: 1.jpg
Просмотров: 1212
Размер:	105.3 Кб
ID:	18479  
__________________
(Offline)
 
Ответить с цитированием
Старый 14.01.2013, 07:15   #1002
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

А сразу в один меш уровень сгенерировать никак? У тебя разные вершины в точках "соединения" частей, они имеют разные нормали. Ну и рассчитываются отдельно. Если бы была одна вершина, то одна нормаль для соединения сделала бы сглаживание.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
mauNgerS (14.01.2013)
Старый 14.01.2013, 13:56   #1003
Morganolla
Бывалый
 
Аватар для Morganolla
 
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений
(для 245 пользователей)
Ответ: Вопросы от новичка

Как сделать некоторые глобальные данные для всего проекта, чтобы можно было передавать их между разными сценами, уровнями и т.д. ?
Сделать какой то static класс? Если можно приведите какой то пример для подробного рассмотрения...Буду благодарен
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32
(Offline)
 
Ответить с цитированием
Старый 14.01.2013, 14:27   #1004
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

любые статик переменные передаются между сценами, кроме объектов Unity. Чтобы передавать их между сценами используй http://docs.unity3d.com/Documentatio...royOnLoad.html
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Morganolla (14.01.2013)
Старый 14.01.2013, 23:24   #1005
Morganolla
Бывалый
 
Аватар для Morganolla
 
Регистрация: 03.12.2008
Адрес: наша раша
Сообщений: 762
Написано 129 полезных сообщений
(для 245 пользователей)
Ответ: Вопросы от новичка

Добавил на сцену музыку - аудио клип и прикрепил к объекту на сцене, а она не играет. В чем может быт проблема?
Вроде все параметры выставил - Play On Awake +, Max Distance =10000 и т.д....

Вроде переформатировал в 2Д - заиграло...
__________________
Reality Simulation Games
Core 2 Duo 2,8GHz, RAM 1Gb, ATI R5670 1Gb. WinXP 32

Последний раз редактировалось Morganolla, 15.01.2013 в 00:35.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 00:13.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com