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)

Morganolla 20.11.2012 01:02

Ответ: Вопросы от новичка
 
а на быстродействии это никак не сказывается? Все компилируется одинаково? В некий промежуточный байт-код?

pax 20.11.2012 01:55

Ответ: Вопросы от новичка
 
Все компилируется в Net dll, на быстродействии не сказывается

radiobutton 22.11.2012 09:40

Ответ: Вопросы от новичка
 
Вообщем. Создаю с помощью кода куб.

PHP код:

player = new GameObject();
            
player.name "player";
            
player.AddComponent("MeshFilter");
            
player.AddComponent("MeshRenderer");       
            
player.GetComponent<MeshFilter>().mesh Engine.CreatePlayerMesh(1f);
            
player.GetComponent<MeshRenderer>().material.color Color.red;
            
player.AddComponent("BoxCollider");
            
player.GetComponent<BoxCollider>().isTrigger true;
            
player.GetComponent<BoxCollider>().center Vector3.zero;
            
player.GetComponent<BoxCollider>().size = new Vector3(0.5f,0.5f,0.5f);
            
player.AddComponent("PlayerTrigger"); 

PlayerTrigger - это следующий скрипт

PHP код:

public class PlayerTrigger MonoBehaviour
{

    
void OnTriggerEnter(Collider trigger)
    {
        
Debug.Log("blabla1");
        if (
trigger.gameObject.name.Substring(0,4) == "ball")
        {
            
Debug.Log("blabla2");
        }
    }


Дальше создаю с помощью кода сферы

PHP код:

balls = new GameObject[12];
            for (
int i 012i++)
            {
                
balls[i] = GameObject.CreatePrimitive(PrimitiveType.Sphere);
                
balls[i].name "ball" id+"_"+i;
               
// balls[i].GetComponent<SphereCollider>().isTrigger = true;
                
balls[i].transform.localScale = new Vector3(scaleBall,scaleBall,scaleBall);
                
balls[i].GetComponent<MeshRenderer>().material.color = new Color(0.9f0.9f0.9f);
            } 

У примитива сфейры уже есть встроеный коллайдер.

Двигаю сферы при помощи изменения
beams[i].transform.position

И когда коллайдер сфейры касается коллайдера куба, то ничего в консоль не пишется.

pax 22.11.2012 09:50

Ответ: Вопросы от новичка
 
Прочитай справку внимательнее, триггеры срабатывают, кода хотя бы на одном объекте есть Rigidbody. И сразу совет на будущее - двигать объекты с колайдерами без Rigidbody сильно нагружает физику. Чтобы объект не "падал", надо поставить rigidbody.isKinematic = true;

radiobutton 22.11.2012 10:16

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

Сообщение от pax (Сообщение 244481)
И сразу совет на будущее - двигать объекты с колайдерами без Rigidbody сильно нагружает физику. Чтобы объект не "падал", надо поставить rigidbody.isKinematic = true;

То есть если у меня и куб и шары должны двигаться, то всем нужны rigidbody?
Просто я двигаю все через изменение position и rotation у transform и мне физика вообще не нужна в моей игре.

и еще, при изменении transform.rotation, BoxCollider тоже повернется как нужно или нет?
вот например при изменении transform.Scale , size никак не изменяеца. Или там каждый кадр идет умножение size на Scale?

pax 22.11.2012 10:19

Ответ: Вопросы от новичка
 
Тебе надо чтобы на сфере был Rigidbody с isKinematic = true

radiobutton 22.11.2012 10:24

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

Сообщение от pax (Сообщение 244483)
Тебе надо чтобы на сфере был Rigidbody с isKinematic = true

с isKinematic = true
отключает действия сил на колайдер?

Кстати сделал так и заработало. )

pax 22.11.2012 10:31

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

Сообщение от radiobutton (Сообщение 244484)
с isKinematic = true
отключает действия сил на колайдер?

Да, этот режим создан специально для тел, которые двигаются "вручную".

radiobutton 22.11.2012 10:49

Ответ: Вопросы от новичка
 
Кстати заметил. для сфераколайдера радиус 0.5 охватывает сферу. А size для бокс колайдера 1 1 1 стандартные весь куб охватывает.

Как я понял эти параметры вроде как скейла для колайдера. А сам колайдер подстраивается автоматически под размеры меша, так?

pax 22.11.2012 10:52

Ответ: Вопросы от новичка
 
0,5 радиус => диаметр 1
Скейл объекта влияет на размер колайдера. Но я бы не советовал делать непропорциональный скейл. Для бокса это может и прокатит (для мешколайдера тоже), но для сферы/капсулы врядли.

is.SarCasm 24.11.2012 21:51

Ответ: Вопросы от новичка
 
Как можно в Андроиде создать что-то типа БД, где будет хранится информация о игроке? PlayerPrefs?

WISHMASTER35 25.11.2012 01:46

Ответ: Вопросы от новичка
 
is.SarCasm, скорее тогда как сохранить в Unity.
PlayerPrefs довольно простой способ хранения данных. Все в одном простом ini файле будет.
Вот что-то http://unity3d.ru/distribution/viewt...hp?f=13&t=1039
Вот еще http://gcup.ru/forum/59-22076-1 не очень понял этот пример, но похоже надо вручную писать пусть к файлу. Не очень кроссплатформенно.

pax, в смысле непропорциональный scale? И что там для капсулы будет не так?

pax 25.11.2012 11:23

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

Сообщение от WISHMASTER35 (Сообщение 244730)
pax, в смысле непропорциональный scale? И что там для капсулы будет не так?

Очевидно, что колайдер не масштабируется же

WISHMASTER35 25.11.2012 16:07

Ответ: Вопросы от новичка
 
Ааа, конечно сферу по одной оси нельзя масштабировать.

Nerd 25.11.2012 17:55

Ответ: Вопросы от новичка
 
Возможно ли отключить backface culling?


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

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