forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Общие вопросы (http://forum.boolean.name/forumdisplay.php?f=166)
-   -   Вопросы от новичка (http://forum.boolean.name/showthread.php?t=15809)

WISHMASTER35 02.08.2012 17:17

Ответ: Вопросы от новичка
 
а в шарпе нет функции для безопасного извлечения элементов из массива? т.т. чтобы вместо ошибки null был? там и кода на 2 строчки, но когда его и так дофига, то не хочется писать такую мелочь ибо и так уже каша из букв.

поиграл в бэтмена. все сделано на высоте. интересно на сколько возможно в юнити такое сделать. интересны пара вещей.
как реализовать быструю смену экранов? можно отключить все игровые обьекты и включить обьекты отвечающии за другой экран. или будет очень медленно?
кто-нибудь пробовал сделать более продвинутую камеру от третьего лица? в бэтмене камера довольно крутая.
видел как в одном уровне у фриза на теле какие-то трупки постепенно от сердца наполнялись жидкостью. т.е. как сделать чтобы от точки по какой-то кривой постепенно шла смена текстуры или какой-то другой эффект.

pax 02.08.2012 17:43

Ответ: Вопросы от новичка
 
если массив null, то можно в теории доставать из него элементы без ошибок с использованием методов расширения.

Пишешь расширение
PHP код:

public static class ArrayExtension
{
    public static 
T GetArrayElement<T>(this T[] array, int index)
    {
        try
        {
            return array[
index];
        }
        catch
        {
            return default(
T);
        }
    }


потом используешь
PHP код:

int[] array = null;

int item = array.GetArrayElement(2); 


WISHMASTER35 02.08.2012 19:41

Ответ: Вопросы от новичка
 
сайт юнити лег) Unify Community has been hacked by spammers (again) and is temporarily offline while we clean up the mess and make things secure. This may take quite some time. Please bear with us.

возможно на одном префабе создать несколько scriptable object? нужно создать материал и дополнить его скриптом атласа.

п.с. не знал что можно дополнять чужие классы и даже массивы)

Radnk 02.08.2012 20:13

Ответ: Вопросы от новичка
 
УЖЕ РАБОТАЕТ :)

pax 02.08.2012 21:24

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 235044)
возможно на одном префабе создать несколько scriptable object? нужно создать материал и дополнить его скриптом атласа.

Не знаю точно подойдет или нет, но можно вот это попробовать использовать.

Цитата:

Сообщение от WISHMASTER35 (Сообщение 235044)
п.с. не знал что можно дополнять чужие классы и даже массивы)

Можно добавлять только методы для экземпляров, на этом LINQ основан.

WISHMASTER35 03.08.2012 00:43

Ответ: Вопросы от новичка
 
теоретически обьект, который добавили через add object to asset должен быть дочерним. но почему-то получается, что дочерний всегда мой атлас, а хотелось бы сделать дочерним материал. т.е. чтобы у атласа был материал, так вроде бы логичнее.

pie 03.08.2012 13:40

Ответ: Вопросы от новичка
 
Загрузил в проект шрифт (Arial). В настройках стоит что Character динамический.

Повесил на переменную. Пытаюсь поменять шрифт вот так:
Код:

GUIStyle.none.fontSize = 5;
Но он почему то не меняется.

pax 03.08.2012 14:10

Ответ: Вопросы от новичка
 
эм, а ты шрифт то вообще применил? Перед использованием шрифта его надо назначить туда, где ты его используешь.

Например
PHP код:

GUI.skin.font myFont

или
PHP код:

GUIStyle none = new GUIStyle(GUI.skin.label);
none.font myFont

Откуда такая конструкция вообще? "GUIStyle.none.fontSize"

Gector 03.08.2012 14:50

Ответ: Вопросы от новичка
 
Вопрос по части записи файла. Есть код который создает файл.
Билд на винде работает отлично. Файл создается. Но в андройде я его найти не могу. В настройках билда ставлю даже установку и запись везде external. Но файл не найден.
Код:

using UnityEngine;
using System;
using System.Collections;
using System.IO;

public class filework : MonoBehaviour
{
        void Awake()
        {
                if (!Directory.Exists("Settings"))
                {
                        Directory.CreateDirectory("Settings");
                }
               
                if (!File.Exists("Settings/settings.ini"))
                {
                        File.Create("Settings/settings.ini");
                        File.AppendAllText("Settings/settings.ini", "test line 1" + Environment.NewLine);
                        File.AppendAllText("Settings/settings.ini", "test line 2");
                }
        }
}

для pax'а На твоем сайте пример видел если что).

pax 03.08.2012 15:09

Ответ: Вопросы от новичка
 
Используй для сохранения http://docs.unity3d.com/Documentatio...tDataPath.html

Gector 03.08.2012 16:54

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от pax (Сообщение 235123)
Используй для сохранения http://docs.unity3d.com/Documentatio...tDataPath.html

Хм... Странно. Даже сейчас не находится никак. Ни поиском по телефону, ни поиском через комп по флешке. :dontknow:

pax 03.08.2012 16:57

Ответ: Вопросы от новичка
 
что именно не находит?

Gector 03.08.2012 17:00

Ответ: Вопросы от новичка
 
Цитата:

Сообщение от pax (Сообщение 235130)
что именно не находит?

Settings.Ini
Собранное приложение под винду работает. Директория и файл есть. Но на андройде нет.

pax 03.08.2012 17:01

Ответ: Вопросы от новичка
 
Я бы попробовал так:
PHP код:

using UnityEngine;
using System;
using System.Collections;
using System.IO;

public class 
filework MonoBehaviour
{
        
void Awake()
        {
                var 
settingsPath Application.persistentDataPath+"/Settings/";
                if (!
Directory.Exists(settingsPath))
                {
                        
Directory.CreateDirectory(settingsPath );
                }
                var 
iniFile settingsPath +"settings.ini";
                if (!
File.Exists(iniFile))
                {
                        var 
file File.Create(iniFile);
                        
file.Close();
                        
File.AppendAllText(iniFile"test line 1" Environment.NewLine);
                        
File.AppendAllText(iniFile"test line 2");
                }
        }



WISHMASTER35 03.08.2012 18:12

Ответ: Вопросы от новичка
 
gector, .а почему player prefab не используешь? он вроде бы для сохранения и создан.

черт! не пойму я этих вершинных шейдеров. почему если я меняю appdata_full на _base или свою структуру, то вылвзят какие-то левые ошибки?
я правильно понимаю что если вершинный шейдер возвращает структуру v2f, то сурфейс шейдер не будет работать, а только фрагментный?
и почему после pragma vertex иногда пишется двоеточие?


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot