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

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

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

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

Ответ
 
Опции темы
Старый 12.06.2015, 21:46   #2176
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Вопросы от новичка

Сообщение от ARA Посмотреть сообщение
Лол! Попробуй патчрелиз Patch 5.1.0p1
http://unity3d.com/unity/qa/patch-releases
Не помогло
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ARA (13.06.2015)
Старый 12.06.2015, 22:05   #2177
ILonion
ПроЭктировщик
 
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений
(для 25 пользователей)
Ответ: Вопросы от новичка

ANIK123, статуса fixed пока нет:
http://issuetracker.unity3d.com/issu...t-of-audioclip
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ANIK123 (14.06.2015)
Старый 12.06.2015, 22:46   #2178
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Вопросы от новичка

Сообщение от ILonion Посмотреть сообщение
ANIK123, статуса fixed пока нет:
http://issuetracker.unity3d.com/issu...t-of-audioclip
Ясно
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием
Старый 15.06.2015, 02:10   #2179
ILonion
ПроЭктировщик
 
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений
(для 25 пользователей)
Ответ: Вопросы от новичка

Доброго времени!
Подскажите, пожалуйста, о спрайтах:
В сцене должно быть множество простых объектов с картинкой постоянно смотрящей в камеру.
Основной вопрос в максимально "легковесном" решении.

То ли реализовать через particle system с одной долгоиграющей частицей-картинкой для каждого объекта;
или через sprite renderer, но со скриптом .LookAt()...
или еще какой-то способ имеется ?
самый шустрый... как быть?
(Offline)
 
Ответить с цитированием
Старый 15.06.2015, 07:03   #2180
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

А что-то такое не подойдет?
https://en.wikibooks.org/wiki/Cg_Pro...ity/Billboards
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ILonion (15.06.2015)
Старый 15.06.2015, 18:29   #2181
ILonion
ПроЭктировщик
 
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений
(для 25 пользователей)
Ответ: Вопросы от новичка

Да, супер, уже работает. Большое спасибо за ссылку!
Прикрутил к нему альфа-смешивание.
Если кому-то понадобится такой билборд-шейдер:

Shader "Cg shader for billboards"
{
Properties {
_MainTex ("Texture Image", 2D) = "white" {}
}
SubShader {

Tags {"Queue" = "Transparent"}

Pass {

ZWrite Off // don't write to depth buffer
// in order not to occlude other objects
Blend SrcAlpha OneMinusSrcAlpha
// blend based on the fragment's alpha value

CGPROGRAM

#pragma vertex vert
#pragma fragment frag

// User-specified uniforms
uniform sampler2D _MainTex;

struct vertexInput {
float4 vertex : POSITION;
float4 tex : TEXCOORD0;
};
struct vertexOutput {
float4 pos : SV_POSITION;
float4 tex : TEXCOORD0;
};

vertexOutput vert(vertexInput input)
{
vertexOutput output;

output.tex = input.tex;
output.pos = mul(UNITY_MATRIX_P, mul(UNITY_MATRIX_MV, float4(0.0, 0.0, 0.0, 1.0)) - float4(input.vertex.x, input.vertex.z, 0.0, 0.0));
return output;
}

float4 frag(vertexOutput input) : COLOR
{
return tex2D(_MainTex, float2(input.tex.xy));
}

ENDCG
}
}
}
(Offline)
 
Ответить с цитированием
Старый 16.06.2015, 23:46   #2182
ILonion
ПроЭктировщик
 
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений
(для 25 пользователей)
Ответ: Вопросы от новичка

Доброго времени!
Скажите, самый быстрый способ получить на лету трансформ для дочерних это transform.GetChild(int) ?
а GameObject.Find (если для дочерних) самый медленный?
(Offline)
 
Ответить с цитированием
Старый 17.06.2015, 07:04   #2183
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

А что, чилды все время меняются? Если получить трансформ в Start или Awake, то разницы особо нет. А в целом по индексу быстрее. А можно у скрипта создать поле Transform и назначить туда искомый трансформ заранее. Тогда ничего искать не надо.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ILonion (17.06.2015)
Старый 17.06.2015, 12:12   #2184
ILonion
ПроЭктировщик
 
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений
(для 25 пользователей)
Ответ: Вопросы от новичка

Да, постоянно instantiate родителей, поэтому дочерних приходится выуживать каким-либо поиском.
(Offline)
 
Ответить с цитированием
Старый 21.06.2015, 00:55   #2185
ILonion
ПроЭктировщик
 
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений
(для 25 пользователей)
Ответ: Вопросы от новичка

Такой вопрос:
В блитце имелась возможность перебирать динамический список через
for a.list = each list, и удалять элемент delete a внутри этого же цикла. Работало вполне вменяемо.
По C# сказано, что foreach в таком же духе лучше не использовать. Действовать через for.
Получается конструкция:
for (int k0 0k0 <= List.Countk0++)
{
      
//...
      
List.RemoveAt(k0);
      
//...

Вопрос: правильно ли так делать в си шарп (нужен ремув по индексу) ? Смущает то, что указано здесь: "..оставшиеся элементы в списке нумеруются заново, чтобы заменить удаленный элемент". Пропусков не будет в текущем цикле? %
(Offline)
 
Ответить с цитированием
Старый 21.06.2015, 01:19   #2186
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

В блице связанный список - LinkedList<T> в шарпе.

С обычными списками я обычно делаю так: если надо что-то удалять из списка, то я обрабатываю список начиная с последнего элемента, потому что RemoveAt при переборе списка вперед пропустит следующий не обработанный элемент (тут можно конечно переменную цикла уменьшить). Либо я записываю элементы, которые надо удалить в другой список не изменяя текущий, а потом удаляю через Remove в дополнительном цикле по списку с удаляемыми элементами.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ILonion (21.06.2015)
Старый 21.06.2015, 02:58   #2187
ILonion
ПроЭктировщик
 
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений
(для 25 пользователей)
Ответ: Вопросы от новичка

Понятно, спасибо.
А LinkedList<T> не поддерживает циклы для изменения.

UPD:
т.е. только один node удаляет и больше ничего не делает:

using UnityEngine;
using System.Collections;
using System.Collections.Generic;

public class 
ts MonoBehaviour 
{

    public 
LinkedList<field_classA_list = new LinkedList<field_class>();

    
void Start () 
    {
        for (
int k 0<= 9k++) 
        {
            
field_class aa = new field_class{};
            
A_list.AddLast (aa);
            
aa.aaa k;
        }

        
LinkedListNode<field_classnode;
        for (
node A_list.Firstnode != nullnode node.Next)
        {
            
Debug.Log(">>");
            
A_list.Remove(node);
        }

        for (
node A_list.Firstnode != nullnode node.Next)
        {
            
Debug.Log(node.Value.aaa);
        }

    }

}

public class 
field_class
{
    public 
int aaa;




UPD2:
не, ошибся. можно удалять в цикле:
LinkedListNode<field_classnode A_list.First;
        while (
node != null)
        {
            
LinkedListNode<field_classnode2 node.Next;
            
A_list.Remove(node);
            
node node2;
        } 

Последний раз редактировалось ILonion, 21.06.2015 в 04:20.
(Offline)
 
Ответить с цитированием
Старый 28.06.2015, 16:24   #2188
ILonion
ПроЭктировщик
 
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений
(для 25 пользователей)
Ответ: Вопросы от новичка

Подскажите, пожалуйста, правильно ли я понимаю, что быстрее и правильнее делать new, чем .Clear для массивов и списков (выполняется каждый кадр) ?
(Offline)
 
Ответить с цитированием
Старый 28.06.2015, 16:38   #2189
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

new выделяет память, Clear нет. Так что правильнее Clear для списков. Для массивов нет такого метода, там только пересоздание.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 28.06.2015, 16:51   #2190
ILonion
ПроЭктировщик
 
Регистрация: 02.10.2014
Сообщений: 102
Написано 5 полезных сообщений
(для 25 пользователей)
Ответ: Вопросы от новичка

Сообщение от pax Посмотреть сообщение
new выделяет память, Clear нет. Так что правильнее Clear для списков. Для массивов нет такого метода, там только пересоздание.
как? а это:
https://msdn.microsoft.com/ru-ru/lib...vs.110%29.aspx

Смущает что методы clear "являются операцией порядка сложности O(n), где n равно length" т.е. перебором очищаются.

поэтому возник вопрос new - clear.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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