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

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

Вернуться   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];
        
0;
        while (
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,157
Написано 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(-1052810.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(-1052810.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(000);
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 038x++)
{
    for (
int z 038z++)
    {
        if (
LMap[x,z]<1)
        {
            
x1=x+0.5f;
            
z1=z+0.5f;
            
s1=Random.Range(00.5f);
            
groundPoint GetHeight(ref x1,ref z1);
            
GameObject inst = (GameObject)Instantiate(Resources.Load("Model/wood"typeof(GameObject)));
            
inst.transform.eulerAngles = new Vector3Random.Range(015)-90Random.Range(0360), Random.Range(015));
            
inst.transform.position groundPoint;                
            
inst.transform.localScale += new Vector3(s1Random.Range(00.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
Просмотров: 683
Размер:	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, время: 09:28.


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