forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Unity (http://forum.boolean.name/forumdisplay.php?f=144)
-   -   Фак по Юнити. (http://forum.boolean.name/showthread.php?t=12966)

Nuprahtor 21.08.2010 23:42

Ответ: Фак по Юнити.
 
Если я выкладываю игры, сделанные на "сломанном" движке, создатели Unity смогут это узнать?
UPD
И как обстоят дела с играми, скомпилированными в Trial лицензии, они отличаются чем - нибудь (кроме плашки и trial-version надписи)?

pax 22.08.2010 00:11

Ответ: Фак по Юнити.
 
На оба вопроса не знаю ответа :pardon: Но по поводу первого - нафиг им это надо, они и так нормально зарабатывают ;)

den 22.08.2010 00:15

Ответ: Фак по Юнити.
 
Не дай буржую заработать - пользуйся кряком!:-D

Reks888 22.08.2010 19:42

Ответ: Фак по Юнити.
 
Цитата:

Сообщение от Nuprahtor (Сообщение 159308)
Если я выкладываю игры, сделанные на "сломанном" движке, создатели Unity смогут это узнать?

Если ты задумываешь NFS:World 2 написать, то найдут способ чтобы узнать. В остальных случаях нафиг ты им нужен:-D

Illidan 01.09.2010 20:54

Ответ: Фак по Юнити.
 
Вобщем, есть цельный меш, и нужно кусок(часть набора вершин) этого меша двигать, поворачивать, скейлить, вращать. как это можно осуществить полегче?. и давно хотел попросить. Расскажите пожалуйста доступно о матрице трансформации. как такое можно запрограмить как ей пользоваться. в инете смотрел но всеравно немогу понять.

ffinder 01.09.2010 22:39

Ответ: Фак по Юнити.
 
первое что приходит в голову - на этот "кусочек" выделить отдельную кость и двигать её.
если нужно что-то "необыкновенное" - смотри пример Procedural amimation на офф-сайте.

pax 02.09.2010 00:13

Ответ: Фак по Юнити.
 
Да, костями самое простое, их можно вращать, масштабировать и смещать без проблем.

Матрицы трансформаций на прямую для многих задач в юнити не используются. Они имеют обертку в виде Transform. У Transform есть два матричный поля, с помощью которых можно выполнят трансформации в локальные и глобальные координаты.

В общем матрица 4х4 элемента представляет собой матрицу трансформаций вращения позиции и масштаба. Каждый элемент матрицы может вычисляться по спец формулам. Суммарные трансформации получаются путем умножения матриц.

Код:

например матрица смещения:
[ 1 0 0 0 ]
[ 0 1 0 0 ]
[ 0 0 1 0 ]
[ X Y Z 1 ]

матрица масштабирования
[ X 0 0 0 ]
[ 0 Y 0 0 ]
[ 0 0 Z 0 ]
[ 0 0 0 1 ]

матрица поворота вокруг оси x:

  [ 1    0      0    0 ]

  [ 0  cos α  sin α  0 ]

  [ 0 -sin α  cos α  0 ]

  [ 0    0      0    1 ]
матрица поворота вокруг оси y:

  [ cos α  0 -sin α  0 ]

  [  0    1    0    0 ]

  [ sin α  0  cos α  0 ]

  [  0    0    0    1 ]
матрица поворота вокруг оси z:

  [ cos α  sin α  0  0 ]

  [-sin α  cos α  0  0 ]

  [  0      0    1  0 ]

  [  0      0    0  1 ]

и т.д.

Все формулы создания таких матриц наверняка есть уже в классе матриц юнити. Так что помнить их не нужно.

Вот ссылка на википедию

Nex 02.09.2010 09:27

Ответ: Фак по Юнити.
 
Как разворачивать объект (RigidBody)? В хелпе смотрел, но ничего не понял ибо все на английском.
transform.Rotate (Vector3.left * 2); - просто двигает объект влево
transform.rotation - не понятно как использовать

pax 02.09.2010 10:23

Ответ: Фак по Юнити.
 
Физические тела можно вращать с помощью добавления соответствующих сил:
Код:

rigidbody.AddTorque(Vector3.left * 300);

Nex 02.09.2010 12:44

Ответ: Фак по Юнити.
 
Переведите пожалуйста код управления кубиком из урока "Unity3d - Простой AI" в JavaScripts. :rolleyes:
Мне захотелось самому сделать что нибудь подобное для начала, но у меня упорно не получается. :(

pax 02.09.2010 12:56

Ответ: Фак по Юнити.
 
Вот так:
Player.js
PHP код:

// скорость ходьбы и скорость поворота в секунду
var moveSpeed float 2;
var 
turnSpeed float 90;

private var 
_controller CharacterController;
private var 
_thisTransform Transform;


// Получаем контроллер
_controller GetComponent(CharacterController);

// Получаем компонент трансформации объекта, к которому привязан данный компонент
_thisTransform transform;



function 
FixedUpdate()
{
    
// Рассчитываем позицию 
    
_controller.Move(_thisTransform.forward moveSpeed Time.deltaTime Input.GetAxis("Vertical") +
                    
Vector3.down 10.0 Time.deltaTime);

    
// Рассчитываем поворот
    
var rot Quaternion Quaternion.AngleAxis(
        
turnSpeed Time.deltaTime Input.GetAxis("Horizontal"), Vector3.up);
    
_thisTransform.rotation *= rot;
}

@
script RequireComponent (CharacterController


IGR 02.09.2010 15:54

Ответ: Фак по Юнити.
 
Цитата:

На оба вопроса не знаю ответа Но по поводу первого - нафиг им это надо, они и так нормально зарабатывают
вернусь к вопросу..
т.е. Вы хотите сказать: бери крякнуты Юнити, делай небольшие игрушки и продавай, зарабатывай и тебе за это ничего не будет ??

pax 02.09.2010 16:01

Ответ: Фак по Юнити.
 
Нет, мы хотим сказать - бери крякнутый юнити, разрабатывай игру, по окончании разработки ищи издателя, покупай юнити и продавай игру ;)

IGR 02.09.2010 16:17

Ответ: Фак по Юнити.
 
хм, а если я хочу продавать свою игру как электронный товар ??

Horror 02.09.2010 16:30

Ответ: Фак по Юнити.
 
Всем привет)
У меня вопрос! :

думаю пару своих игрушек попробовать портануть на ай-хрени.
и такой вопрос, пока то что я видел , что все, что делают на юнити (рабочие скрины) делаются толи в графическом редакторе, толи еще где. А можно просто код писать в файликах, отдельно, а то это все пугает! ?
К примеру, иде типа Визуал Студио или в Блокноте++. Чтоб все писать, а не "добавить объект и его св-ва\скрипта", как я понимаю происходит)?
А то не ясна логика программы)

pax 02.09.2010 16:43

Ответ: Фак по Юнити.
 
Ну как подойдешь к этапу продажи - купи юнити и у тебя не будет проблем ;)

pax 02.09.2010 16:45

Ответ: Фак по Юнити.
 
Цитата:

Сообщение от Horror (Сообщение 160736)
Всем привет)
У меня вопрос! :

думаю пару своих игрушек попробовать портануть на ай-хрени.
и такой вопрос, пока то что я видел , что все, что делают на юнити (рабочие скрины) делаются толи в графическом редакторе, толи еще где. А можно просто код писать в файликах, отдельно, а то это все пугает! ?
К примеру, иде типа Визуал Студио или в Блокноте++. Чтоб все писать, а не "добавить объект и его св-ва\скрипта", как я понимаю происходит)?
А то не ясна логика программы)

Редактор кода можешь выбирать любой, хоть Visual Studio, хоть блокнот. Но в конечном итоге всеравно придется немного работать в редакторе при создании игровых объектов. К тому же чтобы писать для айфона - надо купить лицензию на Pro и лицензию на айфон. Взломанной для айфонов версии нет.

ffinder 02.09.2010 21:29

Ответ: Фак по Юнити.
 
Pro для iPhone не обязательно. Будет и Unity iPhone Basic (которая не про, баксов за 400 вроде).

Данил 09.09.2010 11:07

Ответ: Фак по Юнити.
 
как сделать МЯГКИЕ тени? в pro-версии. тени работают, но понять не могу, как сделать так, чтобы тени не были кубиками, не знаю :(

pax 09.09.2010 13:17

Ответ: Фак по Юнити.
 
Качество теней зависит от выбранного в данный момент качества.





Плюс настройки у источников света. Но к сожалению для точечных источников тени не очень хорошие. Нормальными они получаются при небольшом радиусе света.

Данил 10.09.2010 19:13

Ответ: Фак по Юнити.
 
вообще ноль разницы. о_О

pax 10.09.2010 19:24

Ответ: Фак по Юнити.
 
Попробуй приблизить источник света к месту отбрасываемой тени. И радиус источника.

Антихрист 10.09.2010 19:27

Ответ: Фак по Юнити.
 
В настройках источника света поставь Мягкие тени

Fatalix3d 10.09.2010 19:56

Ответ: Фак по Юнити.
 
В версии 2,6,1 тени действительно мягкие только от Direct light'a, от Omni они немного не качественны да и не мягкие не разу, а вот в юнити версии 3 тени уже нормальные включая и от омни источников + жрут меньше.

pax 10.09.2010 20:11

Ответ: Фак по Юнити.
 
Цитата:

Сообщение от Fatalix3d (Сообщение 161551)

А деревца процедурные?

Fatalix3d 10.09.2010 20:18

Ответ: Фак по Юнити.
 
Угу, как по мне то полный аналог Speed Tree))

pax 10.09.2010 20:22

Ответ: Фак по Юнити.
 
А где можно скачать? Или это тот проект с unifycommunity?

Fatalix3d 10.09.2010 22:51

Ответ: Фак по Юнити.
 
Все это включает версия 3.0)))) ждем релиз ;)

pax 10.09.2010 23:03

Ответ: Фак по Юнити.
 
Ухты ), а я что-то и не стал изучать ассеты, идущие в комплекте :)

Illidan 10.09.2010 23:37

Ответ: Визуальный редактор логики для Unity
 
расскажите пожалуйста об антаресе подробней. желательно отдельной темой. Кто, когда, для чего, как, зачем?

pax 10.09.2010 23:40

Ответ: Визуальный редактор логики для Unity
 
Цитата:

Сообщение от Illidan (Сообщение 161605)
расскажите пожалуйста об антаресе подробней. желательно отдельной темой. Кто, когда, для чего, как, зачем?

документация на русском

Страница скачивания

pax 25.09.2010 23:53

Ответ: Фак по Юнити.
 
там его точно нет ;) Да и кто его будет переозвучивать...

pax 26.09.2010 00:34

Ответ: Фак по Юнити.
 
Цитата:

Сообщение от Andvrok (Сообщение 163214)
Ну не создавать же тему ради одного вопроса о мануале?

А кто говорил о создании тамы :4to: ?

Illidan 24.10.2010 04:38

Ответ: Фак по Юнити.
 
как перевести 3д координаты в двумерные?

pax 24.10.2010 08:42

Ответ: Фак по Юнити.
 
Если я правильно понял, то нужно спроецировать точку на экран? Тогда вот эти функции камеры помогут:
Camera.WorldToScreenPoint
Camera.WorldToViewportPoint
Camera.ScreenToViewportPoint

Stanis1av 03.11.2010 17:22

Ответ: Фак по Юнити.
 
Всем привет)
У меня вопрос!

о GUILayer.HitTest

я для камеры игрока сделал такой скрипт - камера над игроком и не поворачивается и привязал кней управление:
кликаю мышью в пустое место на плане - ставлю объект (маркер),
кликаю на врага - атакую.

проблема в том, что когда кликаю на GUI ставиться и маркер , я попробовал сделать это с помощью GUILayer.HitTest, но ничего не получилось

вот скрипт , помогите решить такую задачу

Код:

using UnityEngine;
using System.Collections;

public class PlayerCamera: MonoBehaviour {

// положение камеры относительно Player
public float XCamera = -20;
public float YCamera = 30;
public float ZCamera = -20;
       
private Transform _thisTransform;
private Transform _playerTransform;
private Transform _MarkerTransform;
private GameObject _Marker;
private GameObject _player;
       
// Use this for initialization
void Start () {
       
// Получаем компонент трансформации объекта, к которому привязан данный компонент
_thisTransform = transform;

// Получаем компонент трансформации игрока  и маркера
_player = GameObject.Find("Player");
_playerTransform = _player.transform;
               
_Marker = GameObject.Find("Marker");
_MarkerTransform = _Marker.transform;
               
}
       
public void OnGUI() {

// тестовая GUI область
GUILayout.BeginArea(new Rect(100, 100, 200, 200), GUI.skin.box);
GUILayout.Button("TEST");
GUILayout.EndArea();
}

       
// Update is called once per frame
void Update () {
               
GUILayer  _GUILayer  = Camera.main.GetComponent<GUILayer>();
               
if (Input.GetMouseButtonDown(0) && _GUILayer.HitTest(Input.mousePosition) == null)  {
                       
Ray _ray = camera.ScreenPointToRay (Input.mousePosition);
       
RaycastHit hit;

if (Physics.Raycast (_ray, out hit)) {
                               
// атакуем Enemy       
if (hit.collider.gameObject.tag == "Enemy") {
                                       
if (Vector3.Distance(_playerTransform.position, рit.collider.gameObject.transform.position) < 3.0f) {
                                               
hit.collider.gameObject.GetComponent<Enemy>().HealthInc();
                                               
 }
}
                               
// ставем маркер на поле
if (hit.collider.gameObject.tag == "Plane") {
                                       
_MarkerTransform.position = new Vector3(hit.point.x, 1, hit.point.z);
_Marker.active = true;
  }
 }
               
}
               
_thisTransform.position = new Vector3( _playerTransform.position.x+XCamera, YCamera, _playerTransform.position.z+ZCamera);

 }
}


pax 03.11.2010 19:05

Ответ: Фак по Юнити.
 
Должно решиться просто. Смотрим пост выше и применяем первую функцию. Заменяем:
PHP код:

if (Input.GetMouseButtonDown(0) && _GUILayer.HitTest(Input.mousePosition) == null)  { 

на
PHP код:

if (Input.GetMouseButtonDown(0) && _GUILayer.HitTest(Camera.main.WorldToScreenPoint (Input.mousePosition)) == null)  { 

UPD:
Хотя только сейчас понял что не прав... наверное из-за того что голова болит... возможно стоит инвертировать ось Y у мыши. Т.е.:
PHP код:

Vector2 mp Input.mousePosition;
mp.Screen.height mp.y;
if (
Input.GetMouseButtonDown(0) && _GUILayer.HitTest(mp) == null)  { 

Сам бы я пошел другим путем, я бы проверил попадает ли mp в Rect области GUI, т.е. (new Rect(100, 100, 200, 200)).Contains(mp);.

baton4ik 03.11.2010 21:44

Ответ: Фак по Юнити.
 
Я знаю координаты объекта. Как мне получить доступ к самому объекту?

pax 03.11.2010 22:31

Ответ: Фак по Юнити.
 
Как-то с другого конца...
Можно найти все трансформы в сцене и сравнить их координаты с имеющимися.
Но проще дать объекту имя или тэг по которому можно будет его найти или ограничить поиск.

baton4ik 03.11.2010 23:50

Ответ: Фак по Юнити.
 
Цитата:

Сообщение от pax (Сообщение 166967)
Как-то с другого конца...
Можно найти все трансформы в сцене и сравнить их координаты с имеющимися.
Но проще дать объекту имя или тэг по которому можно будет его найти или ограничить поиск.

Примерно так я думал, спасибо. Ещё, я не нашёл, как перебирать все трансформы в сцене.

pax 04.11.2010 03:34

Ответ: Фак по Юнити.
 
Вот так можно:
PHP код:

Transform[] transforms = (Transform[]) FindObjectsOfType(typeof (Transform));
        foreach (
Transform sceneTransform in transforms)
        {
            if (
sceneTransform.position == myPos)
            {
                
//объект найден


                
break;
            }
        } 


Stanis1av 04.11.2010 10:14

Ответ: Фак по Юнити.
 
Цитата:

Хотя только сейчас понял что не прав... наверное из-за того что голова болит... возможно стоит инвертировать ось Y у мыши. Т.е.:
PHP код:

Vector2 mp Input.mousePosition;
mp.Screen.height mp.y;
if (
Input.GetMouseButtonDown(0) && _GUILayer.HitTest(mp) == null)  { 

Сам бы я пошел другим путем, я бы проверил попадает ли mp в Rect области GUI, т.е. (new Rect(100, 100, 200, 200)).Contains(mp);.
Y - мыши я переворачивал, забыл написать, ничего не происходило, хотя именно так конечно правильно, но и так GUI не видит :( .

А перебирать все GUI на пересечение по Rect не очень удобно, это у меня в примере тестовый GUI, а ведь их может быть много на экране и еще динамические, хотелось бы победить эту штуку, второй день бъюсь:(

Ну а если с Rect, то как найти все GUI?

pax 04.11.2010 11:27

Ответ: Фак по Юнити.
 
Цитата:

Сообщение от Stanis1av (Сообщение 167015)
Ну а если с Rect, то как найти все GUI?

Достаточно зарегистрировать в каком-то компоненте все области, в которых находятся элементы GUI.

Можно попробовать так:
PHP код:

public class MouseOnGUITester:MonoBehaviour
{
    public static 
readonly Dictionary<string,RectGUIRects = new Dictionary<string,Rect>();
    public static 
bool mouseOnGUI false;

    public 
void Update()
    {
       
Vector2 mp Input.mousePosition
       
mp.Screen.height mp.y
       
mouseOnGUI false;
       foreach (var 
rect in GUIRects)
       {
           if(
rect.Value.Contains(mp))
           {
               
mouseOnGUI true;
               break;
           }
       }
    }

    public static 
void RegisterRect(string rectNameRect rect)
    {
        
GUIRects[rectName] = rect;
    }

    public static 
void UnRegisterRect(string rectName)
    {
        if(
GUIRects.ContainsKey(rectName)  GUIRects.Remove(rectName);
    }
    


Бросить этот компонент на любой объект в сцене и регистрировать по имени все области, в которых GUI есть. Если область исчезает - разрегистрировать ее (например в OnDisable компонента с GUI). Если Область изменила размер или положение, то ее можно зарегистрировать заново.

Пользоваться:
PHP код:

// регистрация
public void Start()
{
   
MouseOnGUITester.RegisterRect("MyMenuRect", new Rect(100100200200));
}

// разрегистрация
public void OnDisable()
{
    
MouseOnGUITester.UnRegisterRect("MyMenuRect");
}


// проверка
public void Update()
{
  if (!
MouseOnGUITester.mouseOnGUI )
  {
     
// действие
  
}


PS: писал сразу сюда, возможно ошибок налепил...

Stanis1av 05.11.2010 10:22

Ответ: Фак по Юнити.
 
идея понятна, но всё же - это как-то "сложно" должно быть какое-то стандартное решение.

Спасибо paxу
за подержку

Ведь эта тема толком нигде не описана

Единственное, что я нашел - это существует какая-то несовместимось GUI в Unity, это - старый стиль графического интерфейса (из классов GUIElement, GUITexture, GUIText, GUILayer) и новый (именуемые " UnityGUI "и из всех других классов GUIAnything, и OnGUI () вызова). Так что если вы используете UnityGUI, HitTest ничего не найдете.

pax если что-то знаете , расскажите плз

pax 05.11.2010 11:15

Ответ: Фак по Юнити.
 
Другого "нормального" способа определить нахождение мышки над GUI не знаю. GUIElement, GUITexture, GUIText, GUILayer - это отдельная часть от GUI. Я с Unity знаком не так долго, но вроде они остались для поддержки старых версий (но утверждать не могу).

С версией Unity 3.1 вроде обещают новый GUI. Возможно там будут универсальные функции для этой задачи. Ждем ее выхода еще по тому, что обещают внедрить новые инструменты по работе с текстурами. И вроде она должна выйти вот вот...

Taugeshtu 05.11.2010 20:25

Ответ: Фак по Юнити.
 
А меж тем все прозаично:
GUIText, GUITexture, GUIElement очень удобны для отрисовки HUD-а, а UnityGUI - для менюшек.

pax 05.11.2010 20:47

Ответ: Фак по Юнити.
 
а GL еще удобнее :)
http://shgames.ru/unity/font/

Stanis1av 06.11.2010 10:30

Ответ: Фак по Юнити.
 
Цитата:

Сообщение от pax (Сообщение 167164)
Другого "нормального" способа определить нахождение мышки над GUI не знаю.

В общем воспользовался твоей идеей, все отлично работает.

переделал update() , а точнее убрал,сделал так
Код:


public static bool mouseOnGUI (Vector2 mp) {
       
mp.y = Screen.height - mp.y;
                       
foreach (var rect in GUIRects) {
                 
if(rect.Value.Contains(mp)) {
                         
return true;
  }
 }               
return false;
}

теперь обращаюсь к этому методу так GUIGame.mouseOnGUI(Input.mousePosition)

да... щас подумал правильней было-бы возвращать было имя GUI для универсальности.

В общем, огромное спасибо.

pax 06.11.2010 10:47

Ответ: Фак по Юнити.
 
Пожалуйста :)

Pan89 24.11.2010 23:44

Ответ: Фак по Юнити.
 
Вопросы:
1. Как работать с бинарными файлами (read, write)? Никак не могу найти подходящий класс.
2. Как рендерить в текстуру?
3. Надо ли удалять объект после оператора new? Если да, то где: awake(), start(), update(), ...?

Использую бесплатную версию, JavaScript.

Taugeshtu 25.11.2010 00:58

Ответ: Фак по Юнити.
 
Цитата:

1. Как работать с бинарными файлами (read, write)? Никак не могу найти подходящий класс.
В самом Юнити обертки для этих операций нет, ищи подобное для самого JavaScript

Цитата:

2. Как рендерить в текстуру?
Буквально позавчера (или нет?) разбирался, вот к чему пришел:
Код:

var ProjectedText : String = "";

private var cam : GameObject;
private var tObj: GameObject;
private var proj : Projector;
private var shadow_tex:RenderTexture;
static var original_tex:Texture;

function Start () {
        cam = GameObject.FindWithTag("AdditionalCam");
        tObj = GameObject.FindWithTag("ProjectorHelper");
        proj = gameObject.GetComponent(Projector);
        shadow_tex = RenderTexture(Screen.width, Screen.height, 0);
        original_tex = proj.material.GetTexture("_ShadowTex");
       
        shadow_tex.width = 1024;
        shadow_tex.height = 1024;
        shadow_tex.useMipMap = true;
        shadow_tex.Create();
       
        // set special object GUIText to text string
        tObj.guiText.text = ProjectedText;
        tObj.guiText.material.color = Color(0.1, 0.1, 0.1, 1);
       
        // render to texture screen
        cam.camera.enabled = true;
        cam.camera.targetTexture = shadow_tex;
        cam.camera.Render();
       
        // asign texture to material
        proj.material.SetTexture("_ShadowTex",shadow_tex);
       
        // reset to defaults
        cam.camera.enabled = false;
        tObj.guiText.text = "";
}

function OnApplicationQuit() {
        proj.material.SetTexture("_ShadowTex",original_tex);
}

Что делает:
Рендерит в текстуру проектора текст, содержащийся в строке, в соответствии с настройками объекта с GUIText и тегом "ProjectorHelper"

Как работает:
  • находит дополнительную (можно и с основной - поправка 1) камеру, объект с текстом GUIText, устанавливает ссылку на компонент проектора (так было надо), сохраняет оригинальную текстуру проектора в переменную (чтобы потом в редакторе проектор не "испортился")
  • создает рендер-текстуру, задает ее настройки. Обрати внимание, что рендер-текстура не создается моментально - только после проверки IsActive или вызова Create()
  • устанавливается текст для объекта, который будет рендерится (рендерится только он из-за настроек culling layers камеры)
  • включается дополнительная камера (по умолчанию выключена была, чтоб не отвлекала)
  • устанавливается текстура, в которую пойдет рендер
  • делается рендер))
  • применяется отрендереная текстура в материал проектора
  • сбрасываются настройки

Поправка 1.
Если делать это через главную и единственную камеру в сцене, то я думаю нужно не включать-выключать компонент камеры у её объекта и вместо этого устанавливать в конце её targetTexture = 0. Ну и если нужно это делать в рантайме, то все из Start переносится в Update по условию (или без него, если вы мазохист)

Цитата:

3. Надо ли удалять объект после оператора new? Если да, то где: awake(), start(), update(), ...?
Тут точно не скажу... Порой бывает нужно оставлять объекты до конца работы програмы (или сцены), иногда - удалять после пары действий.
Awake и прочие - это уже куски скрипта. А кто на новый GO будет тебе скрипт вешать? Скрипт нужно подготовить для объекта заранее, если хочешь его на создаваемый объект повесить.

pax 25.11.2010 02:21

Ответ: Фак по Юнити.
 
  1. C бинарными файлами работать можно через классы System.IO. Справка по ним тут: http://msdn.microsoft.com/ru-ru/library/system.io.aspx
    Пример подключения классов из этого пространства имен здесь: http://www.unifycommunity.com/wiki/i..._Load_from_XML правда для сохранения текста, но это одно и тоже. Эти классы не работают в WebPlayer. В нем работа с файлами запрещена.
  2. Самый простой способ - создать в ассетах RenderTexture. Создать камеру, камере указать в качестве цели текстуру. Программный способ приведен Taugeshtu, за что ему спасибо. Скажу что камеру включать для функции Render не надо. Цель визуализации так же можно указать как RenderTexture.active.
  3. Если это объекты Unity (унаследованные от UnityEngine.Object), то удалять их надо когда они не нужны функцией Destroy(). Если это другие классы, то сборщик мусора сам позаботится об их удалении. Структуры и ValueType'ы (int, float, Vector3, Rect, Quaternion) удаляются при выходе из области видимости (хотя для js по моему для них конструктор не нужен). Все Object'ы удаляются при загрузке новой сцены, если им принудительно не сказали не уничтожаться.

Nuprahtor 26.11.2010 21:09

Ответ: Фак по Юнити.
 
Возникла проблема - с недавнего времени не могу зарегистрировать юнити. То есть регистрация идет, но после перезагрузки компьютера юнити просит повторить эту операцию. Проверялся CureIt, вирусов не обнаружил.
В чем может быть проблема?

pax 26.11.2010 21:29

Ответ: Фак по Юнити.
 
id диска не меняется после перезагрузки?

Nuprahtor 26.11.2010 21:54

Ответ: Фак по Юнити.
 
Записал id диска
Зарегистрировал юнити. Работает
Перезагрузился - id диска тот же, юнити не работает

pax 26.11.2010 21:58

Ответ: Фак по Юнити.
 
Тогда не знаю. Попробуй запускать Unity от имени администратора...

Nuprahtor 27.11.2010 20:07

Ответ: Фак по Юнити.
 
Цитата:

Попробуй запускать Unity от имени администратора...
Пробовал
Черт, и копирование .ilf файла для повторной регистрации не помогает...:(

Pan89 04.12.2010 12:26

Ответ: Фак по Юнити.
 
Еще один вопрос, но больше он относится к программированию по C#:
какие передать параметры, в конструктор GameObject(string name, params Type[] components), для создания камеры?

pax 04.12.2010 12:37

Ответ: Фак по Юнити.
 
Так наверное:
PHP код:

Camera cam = new GameObject("MyCam"typeof(Camera)).camera

или так:
PHP код:

Camera cam = new GameObject("MyCam").AddComponent<Camera>(); 


Illidan 09.12.2010 20:26

Ответ: Фак по Юнити.
 
такой смишной вопрос, как поудобнее можно вывести лишние нули слево от числа. типо 00000149
хочу на счетчик очков поставить.вступор немножко встал

pax 09.12.2010 20:41

Ответ: Фак по Юнити.
 
Это вопрос по C# наверное )
PHP код:

string строка число.ToString("00000000"); 


Nuprahtor 13.12.2010 13:17

Ответ: Фак по Юнити.
 
Мои очередные глупые вопросы:
Меня интересует билд для MacOs, если я сделаю его на PC, будет ли он работать на макинтоше?
И с архивацией (хотя это уже не к юнити, но надеюсь кто-нибудь объяснит) - архив, сделанный в виндоусе откроется на макинтоше?

Illidan 13.12.2010 13:26

Ответ: Фак по Юнити.
 
архив откроется, это просто файл.
насчет компилирования под макось должно все работать, хотя не пробовал.
юнити же не ругается при построении.

Kiroff 29.12.2010 22:45

Ответ: Фак по Юнити.
 
Я недавно начал изучать unity, поэтому накопилось много вопросов. В общем, у меня такое дело:

Как можно считать координаты, на поверхности при нажатии мышкой, чтобы персонаж двигался туда?
То есть мне надо, чтобы герой двигался туда, куда указывает мышь, как в играх аля Diablo?


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

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