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)

seaman 09.01.2013 23:18

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

Texture2D hmap = (Texture2D)Resources.Load("Media\levelrts11");
Color[] heights = hmap.GetPixels();

heights - массив цветов. упорядочен слева - направо, снизу - вверх. Далее можно исползовать heights[i].r - красный канал
Код:

Terrain active = Terrain.activeTerrain; //Получаем активный террайн
TerrainData data = active.terrainData; // Получаем все данные террайна
float height = data.GetInterpolatedHeight(x, y); //Получаем высоту в нужной точке


pax 10.01.2013 00:12

Ответ: Вопросы от новичка
 
На сколько я помню - пик это каст, так что вот пример:

PHP код:

using UnityEngine;
using System.Collections;

public class 
example MonoBehaviour {
    public 
float distanceToGround;
    public 
Vector3 groundPoint;
    
void Update() {
        
RaycastHit hit;
        
// стрельба идет из позиции текущего объекта вниз
        
if (Physics.Raycast(transform.positionVector3.downout hit))
        {
            
// попали
            
distanceToGround hit.distance;
            
groundPoint hit.point;
        }
        else
        {
            
// не попали
        
}
        
    }



подробнее тут: http://docs.unity3d.com/Documentatio...s.Raycast.html

WISHMASTER35 10.01.2013 04:02

Ответ: Вопросы от новичка
 
Вложений: 1
Почему коллайдеры немного проваливаются друг в друга?
RigidBody имеет только капсула.

pax 10.01.2013 07:15

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

Сообщение от WISHMASTER35 (Сообщение 248859)
Почему коллайдеры немного проваливаются друг в друга?
RigidBody имеет только капсула.



Цитата:

Min Penetration For Penalty How deep in meters are two objects allowed to penetrate before the collision solver pushes them apart. A higher value will make objects penetrate more but reduces jitter.

Morganolla 10.01.2013 15:29

Ответ: Вопросы от новичка
 
Интересно, ребята из Юнити сами писали компиляторы для C# на все платформы? Или как там все происходит?

pax 10.01.2013 15:34

Ответ: Вопросы от новичка
 
Моно кросплатформенный, за исключением флеша. На флеш они написали транслятор в AS.

RegIon 10.01.2013 16:05

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

Сообщение от pax (Сообщение 248846)
На сколько я помню - пик это каст, так что вот пример:

PHP код:

using UnityEngine;
using System.Collections;

public class 
example MonoBehaviour {
    public 
float distanceToGround;
    public 
Vector3 groundPoint;
    
void Update() {
        
RaycastHit hit;
        
// стрельба идет из позиции текущего объекта вниз
        
if (Physics.Raycast(transform.positionVector3.downout hit))
        {
            
// попали
            
distanceToGround hit.distance;
            
groundPoint hit.point;
        }
        else
        {
            
// не попали
        
}
        
    }


подробнее тут: http://docs.unity3d.com/Documentatio...s.Raycast.html

Я бы использовал Linecast, так как более удобен с ограниченными отрезками (зачем например нам что-то кастить, если событие только вблизи проходит, пусть raycast быстрее)

seaman 10.01.2013 16:16

Ответ: Вопросы от новичка
 
Я так считал, что они эквивалентны:
Linecast(start, end) == Raycast(start, (end-start), (end-start).magnitude)
Raycast(start, dir, length) == Linecast(start, (start+dir*length))
В разных случаях удобнее разные методы.

mauNgerS 10.01.2013 17:51

Ответ: Вопросы от новичка
 
Всем спасибо за ответы.

Вновь вопрос: можно ли использовать текстуру не кратную степени двойки, если да то как? (та текстура с которой снимаются данные о высоте уровня)
Загружаю к примеру 39х39 а она сжимается до 32х32.

pax 10.01.2013 18:10

Ответ: Вопросы от новичка
 
Выбирай Advanced для импорта и выбери None в пункте Non Power Of 2

seaman 10.01.2013 20:58

Ответ: Вопросы от новичка
 
Будьте осторожны с NPOT текстурами на мобилах. Во первых они дольше грузятся, во вторых отнимают больше памяти.
По второму вот - ссылка профит
ТУТ (- это сссылка!) вообще написано, что NPOT текстуры не могут быть кмпрессированы на iOs.
На самом деле не вижу никакого смысла использовать такие текстуры. Хоть их Юнити и поддерживает, но имхо лучше самому поставить ограничение, чем потом разбираться с проблемами.
ЗЫ: Что-то тут ссылки плохо выделяются

pax 10.01.2013 23:04

Ответ: Вопросы от новичка
 
Не всегда нужны текстуры размера двойки. Например для GUI. Но многие 2d фреймворки умеют собирать их в атласы (которые уже будут степени двойки), так что не вижу ничего плохого в загрузке в проект таких текстур.

WISHMASTER35 11.01.2013 02:19

Ответ: Вопросы от новичка
 
rigidbody.MovePosition изменяет позицию только в FixedUpdate, даже если вызван был из Update? А то объект двигается дергаясь.
Вообще можно как-то насильно провести тест коллизии в Update?

Уже долго безуспешно пытаюсь сделать возможность брать предметы как в Пенумбре и Амнезии.
Тут написано, что в амнезии используется Newton Game Dynamics. Я уже подумываю, что в PhysX так не сделать.
Как не пробовал либо проблемы с коллизией предмета, либо с его движением за курсором.
Движется за курсором нормально только если в Update просто изменять позицию предмета, но о коллизии тогда речи нету.
Если двигать методом AddForce, то будет либо отставать за курсором, либо по инерции летать вокруг курсора.

pax 11.01.2013 07:30

Ответ: Вопросы от новичка
 
Я бы попробовал использовать джоинты для этой задачи. Fixed Joint вероятно не подойдет, значит вероятнее всего использовать Configurable Joint.

WISHMASTER35 11.01.2013 17:03

Ответ: Вопросы от новичка
 
pax, да я перепробовал все джоинты. Может не так настраивал их.
Еще проблема в том, что камера вращается в Update, а физикой двигать можно только в FixedUpdate. Это вызывает сильное дрожание.


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

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