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. Это вызывает сильное дрожание.

seaman 11.01.2013 19:00

Ответ: Вопросы от новичка
 
Не знаю насчет джойнтов. Но для того чтобы не дергалось можно уменьшить Fixed TimeStep (осторожнее чтобы не тормозило). Изменить в RigidBody - Inrerpolate/Extrapolate.
Цитата:

только если в Update просто изменять позицию предмета, но о коллизии тогда речи нету
Я тут когда делал арканоид понял, что ну не получается у меня сделать нормальное отбитие шарика битой с использованием физики. Как ни уменьшаешь Fixed TimeStep - иногда шарик отбивается не верхом биты, а серединой, или даже низом. Именно из-за прерывности расчета физики. (Может, конечно, у меня руки кривые, но - увы). Поэтому я сделал атк.
Двигаю шарик не физикой, а изменением позиции. Коллизии рассчитываю пуская вперед по движению шарика луч (Physx Raycast) на расстояние, определяемое скоростью шарика. Это делается каждый кадр - следовательно нет глюков, вызываемых дискретностью расчета физики.
В арканоиде это вполне нормально прошло. В большой игре нужно проверять не начнет и тормозить.

WISHMASTER35 11.01.2013 20:26

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

о для того чтобы не дергалось можно уменьшить Fixed TimeStep
Уменьшать Fixed TimeStep это всегда не выход.
Цитата:

Коллизии рассчитываю пуская вперед по движению шарика луч (Physx Raycast) на расстояние, определяемое скоростью шарика
А Continuous Collision Detection не лучше было бы?

Не знаю физикой или нет двигается объект в Амнезии, но при коллизии он довольно хорошо себя ведет.

seaman 11.01.2013 20:44

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

А Continuous Collision Detection не лучше было бы?
Я все перепробовал и Continuous и Continuous Dynamic. Говорю - или у меня руки кривые, или... Но мячик все-равно иногда отбивается не верхом биты. Кстати очень хорошо видна дискретность, если у камеры сделать ClearFlag - Don'tClear. Тогда на изображении остаются следы от мяча. Видно, что они дискретны, особенно если двигать физикой..

WISHMASTER35 11.01.2013 20:50

Ответ: Вопросы от новичка
 
seaman, если уменьшить timeScale, то тоже хорошо видно дискретность)

seaman 11.01.2013 21:11

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

WISHMASTER35 11.01.2013 23:16

Ответ: Вопросы от новичка
 
Снял маленькое видео http://www.youtube.com/watch?v=Mke9F...ature=youtu.be правда темно получилось.
seaman, вручную так коллизию не обработать. Как видно объекты при коллизии даже вращаются.
А Continuous Dynamic действительно сильно не спасает. Делаю такую жесткую привязку к курсору body.MovePosition( GetTarget() ); но предмет все равно проходит сквозь объекты.

WISHMASTER35 12.01.2013 01:06

Ответ: Вопросы от новичка
 
«Newton» больше акцентирован на физическую точность моделирования, чем на скорость.
Теперь я действительно подумываю, что на PhysX такое не сделаешь.
В Амнезии, кстати, Character реалистично толкает физические объекты. PhysX CharacterController это просто не может сделать.

GooV 12.01.2013 14:26

Ответ: Вопросы от новичка
 
Всем здравствуйте. Хочу написать скрипт чтобы плеер стукаясь о препятствие получал урон. Написал скрипт для урона, все работает.Осталось одна проблема, уже второй день рою интернет в поисках примера для скрипта проверки коллизии, нарыл 2 функции OnTriggerEnter , OnCollisionEnter. И вот не получается задействовать их, уже не питаю надежд разобраться своими силами, прошу помощи или ссылок на понятные примеры использования этих функций.
Вот сам код:

Код:

using UnityEngine;
using System.Collections;

public class colision_of_player : MonoBehaviour {
       
        public GameObject target;
        public int prover;
           


       
        void OnCollisionEnter(Collision collision1) {
     
        if(collision1.gameObject.tag == "Player")
              {
                       
                       
        player_health eh=(player_health)target.GetComponent("player_health");
    eh.defuzhels(-10);
                       
                       
                }
    }
       
       
}


pax 12.01.2013 14:48

Ответ: Вопросы от новичка
 
Если ты используешь CharacterController, то тебе надо использовать http://docs.unity3d.com/Documentatio...lliderHit.html

Я тут когда-то писал урок про змейку. Там есть обработка столкновений с едой.

GooV 12.01.2013 15:27

Ответ: Вопросы от новичка
 
Спасибо за ответ.Я попытался переписать с функцией OnControllerColliderHit, но как-то получилось неважно, + я добавил задержку, чтобы когда осуществляется столкновение то жизни не исчезли моментально .
с этими дополнениями ничего не изменилось, он не реагирует на столкновение никак.
вод код:
Код:

using UnityEngine;
using System.Collections;

public class colision_of_player : MonoBehaviour {
       
        public GameObject target;
        public float time;
        public float maxtime;
        public int prover;
        private bool n;
    //public Collision myCollision;
       
        // Use this for initialization
        void Start () {
        maxtime=2.0f;
                time=maxtime;
               
                       
        }
       
        // Update is called once per frame
        void Update ()
        {
               
                if (time > 0){time-=Time.deltaTime;}
                if (time < 0){time=0;}
                if (time ==0){time=maxtime;n=true;}
        else{n=false;}
               
               
               
       
        }
       
       

       
       
        public void OnControllerColliderHit(ControllerColliderHit hit) {
     
        if(hit.collider.gameObject.tag == "Ships" & n){
                       
                       
        player_health eh=(player_health)target.GetComponent("player_health");
    eh.defuzhels(-10);
                       
                       
                }
    }
       
       
}


GooV 12.01.2013 15:44

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

GooV 12.01.2013 17:00

Ответ: Вопросы от новичка
 
У меня ещё один вопрос, как копировать вектор движения предмета?

pax 12.01.2013 18:36

Ответ: Вопросы от новичка
 
А можно точнее вопрос поставить?

GooV 12.01.2013 20:51

Ответ: Вопросы от новичка
 
Поточнее можно. мне нужно сделать так чтобы плеер вставая на движущийся блок, как на пол, двигался вместе с ним, для этого я проверяю с начало коллизию плеера с этим движущимся блоком, и при её осуществлении должен двигать плеера так же как и движется блок. И пока я не знаю как осуществить это движение.Я предполагал что можно сделать с помощью вектора, скопировав его с блока и применив это движение на плеера.

pax 12.01.2013 21:26

Ответ: Вопросы от новичка
 
В стандартном примере платформера было такое решение http://u3d.as/content/unity-technolo...r-tutorial/3yF

GooV 12.01.2013 21:51

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

Сообщение от pax (Сообщение 249252)
В стандартном примере платформера было такое решение http://u3d.as/content/unity-technolo...r-tutorial/3yF

по нажатию кнопки ни чего не открывается(((

pax 12.01.2013 22:44

Ответ: Вопросы от новичка
 
найди проект через Unity Asset Store (Window => Asset Store)

seaman 12.01.2013 23:31

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

по нажатию кнопки ни чего не открывается(((
Может нужна регистрация на unity3d.com? У меня все открывается.

mauNgerS 12.01.2013 23:38

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

Интересует возможность сделать синглмеш.
Что-то типа AddMesh на блице.

В справке нашёл функцию Mesh.CombineMeshes, но не получается ей воспользоваться.

Так же в справке к данной функции указан код:
PHP код:

using UnityEngine;
using System.Collections;

[
RequireComponent(typeof(MeshFilter))]
[
RequireComponent(typeof(MeshRenderer))]
public class 
example MonoBehaviour {
    
void Start() {
        
Component[] meshFilters GetComponentsInChildren<MeshFilter>();
        
CombineInstance[] combine = new CombineInstance[meshFilters.length];
        
0;
        while (
meshFilters.length) {
            
combine[i].mesh meshFilters[i].sharedMesh;
            
combine[i].transform meshFilters[i].transform.localToWorldMatrix;
            
meshFilters[i].gameObject.active false;
            
i++;
        }
        
transform.GetComponent<MeshFilter>().mesh = new Mesh();
        
transform.GetComponent<MeshFilter>().mesh.CombineMeshes(combine);
        
transform.gameObject.active true;
    }



pax 13.01.2013 00:11

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

Mesh oneMesh = new Mesh();
Mesh otherMesh = new Mesh();
Mesh combinedMesh = new Mesh();

CombineInstance[] instances = new CombineInstance[2];

instances[0].mesh oneMesh;
instances[0].transform Matrix4x4.identity;

instances[1].mesh otherMesh;
instances[1].transform Matrix4x4.identity;

combinedMesh.CombineMeshes(instances); 


Morganolla 13.01.2013 14:16

Ответ: Вопросы от новичка
 
При переходе с С++ на С# я не совсем понимаю работу с массивами. Например в коде
Код:

public class StartAnimator : MonoBehaviour {
       
        public Transform[] ObjPos= new Transform[8];
        void Start ()
        {
                ObjPos[0].position = new Vector3(-105, 281, 0.5f); // возможно здесь ошибка !!!!
.....................................................
......................................................
.......................................................
}

я создаю массив ObjPos - ссылок на объекты Transform или сами эти объекты Transform???
Если это массив ссылок, то как создать сами объекты?
Мне нужно иметь массив объектов Transform с заданным положением в пространстве, чтобы потом присваивать их другим выборочным объектам в игре...

RegIon 13.01.2013 14:41

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

Сообщение от Morganolla (Сообщение 249308)
При переходе с С++ на С# я не совсем понимаю работу с массивами. Например в коде
Код:

public class StartAnimator : MonoBehaviour {
   
    public Transform[] ObjPos= new Transform[8];
    void Start ()
    {
                ObjPos[0].position = new Vector3(-105, 281, 0.5f); // возможно здесь ошибка !!!!
.....................................................
......................................................
.......................................................
}

я создаю массив ObjPos - ссылок на объекты Transform или сами эти объекты Transform???
Если это массив ссылок, то как создать сами объекты?
Мне нужно иметь массив объектов Transform с заданным положением в пространстве, чтобы потом присваивать их другим выборочным объектам в игре...

Это массив ссылок на то, чего еще нет,так, как я понял, нельзя сделать объект, нужно типо так:
PHP код:

Vector3 pos=new Vector3(-1052810.5f);
ObjPos[0]  = Instance(transform,pos,transform.rotation) as Transform


pax 13.01.2013 14:51

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

Сообщение от Костян (Сообщение 249310)
PHP код:

Vector3 pos=new Vector3(-1052810.5f);
ObjPos[0]  = Instance(transform,pos,transform.rotation) as Transform


Скорее

PHP код:

ObjPos[i] = new GameObject("MyPivot"+i).transfrom

А еще прокомментирую то, что если создавать массив публичным, то Unity серлиализует его. Т.е. если ты изменишь его в редакторе, то в итоге его данные будут присутствовать, а не new Transfom[8]

mauNgerS 14.01.2013 00:21

Ответ: Вопросы от новичка
 
Вот такой вод код создаёт новый гамеобжект и помещает в него все меши.

Но все меши помещаются в 0,0,0 как сохранить их положение и размер которые задаются перед соединением?


PHP код:

GameObject map1 GameObject.CreatePrimitive(PrimitiveType.Cube);        
map1.name "map1";        
map1.transform.position = new Vector3(000);
Destroy(map1.GetComponent<Collider>());
MeshRenderer mr1 map1.GetComponent<MeshRenderer>();
mr1.material = (Material)Resources.Load("Model/Materials/wood",typeof(Material));
        
Mesh m1 map1.GetComponent<MeshFilter>().mesh;
m1.Clear();

CombineInstance[] instances = new CombineInstance[i];
i=0;
for (
int x 038x++)
{
    for (
int z 038z++)
    {
        if (
LMap[x,z]<1)
        {
            
x1=x+0.5f;
            
z1=z+0.5f;
            
s1=Random.Range(00.5f);
            
groundPoint GetHeight(ref x1,ref z1);
            
GameObject inst = (GameObject)Instantiate(Resources.Load("Model/wood"typeof(GameObject)));
            
inst.transform.eulerAngles = new Vector3Random.Range(015)-90Random.Range(0360), Random.Range(015));
            
inst.transform.position groundPoint;                
            
inst.transform.localScale += new Vector3(s1Random.Range(00.5f), s1);
            
Mesh me inst.GetComponent<MeshFilter>().mesh;
            
instances[i].mesh me;
            
instances[i].transform Matrix4x4.identity;
            
i=i+1;
        }
    }
}
m1.CombineMeshes(instances); 


pax 14.01.2013 00:32

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

instances[i].transform Matrix4x4.identity

поставить
PHP код:

instances[i].transform inst.transform.localToWorldMatrix


mauNgerS 14.01.2013 04:04

Ответ: Вопросы от новичка
 
Вложений: 1
Есть генерированный в скрипте меш.

RecalculateNormals() делает освещение правильным, расчёт тангентов делает бамп правильным.

Как на нём настроить группы сглаживания? Необходимо чтобы у всего меша была одна группа сглаживания. Без ступенек.

На блице такой же алгоритм давал необходимый результат (сразу у всего меша была одна группа сглаживания).

pax 14.01.2013 07:15

Ответ: Вопросы от новичка
 
А сразу в один меш уровень сгенерировать никак? У тебя разные вершины в точках "соединения" частей, они имеют разные нормали. Ну и рассчитываются отдельно. Если бы была одна вершина, то одна нормаль для соединения сделала бы сглаживание.

Morganolla 14.01.2013 13:56

Ответ: Вопросы от новичка
 
Как сделать некоторые глобальные данные для всего проекта, чтобы можно было передавать их между разными сценами, уровнями и т.д. ?
Сделать какой то static класс? Если можно приведите какой то пример для подробного рассмотрения...Буду благодарен :)

pax 14.01.2013 14:27

Ответ: Вопросы от новичка
 
любые статик переменные передаются между сценами, кроме объектов Unity. Чтобы передавать их между сценами используй http://docs.unity3d.com/Documentatio...royOnLoad.html

Morganolla 14.01.2013 23:24

Ответ: Вопросы от новичка
 
Добавил на сцену музыку - аудио клип и прикрепил к объекту на сцене, а она не играет. В чем может быт проблема?
Вроде все параметры выставил - Play On Awake +, Max Distance =10000 и т.д....

Вроде переформатировал в 2Д - заиграло...

pax 14.01.2013 23:49

Ответ: Вопросы от новичка
 
AudioListener который обычно висит на камере есть в сцене?

Для музыки обычно делают 2d звук

pie 15.01.2013 01:51

Ответ: Вопросы от новичка
 
Всем привет! Делаю запрос при старте вот так:
Код:

public void Start() {
                Application.ExternalEval("" +
                        "VK.init(function() {" +
                                "VK.api(\"getProfiles\"," +
                                        "{uids:\""+vkId+"\",fields:\"photo\"}," +
                                        "function(data) {" +
                                                "GetUnity().SendMessage(\"General\", \"OnGetProfiles\", data.response)" +
                                        "}" +
                                ")" +
                        "});");
        }

В логах веб плеера ошибка:
Цитата:

MissingMethodException: The best match for method OnGetProfiles has some invalid parameter.
at System.MonoType.InvokeMember (System.String name, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object target, System.Object[] args, System.Reflection.ParameterModifier[] modifiers, System.Globalization.CultureInfo culture, System.String[] namedParameters) [0x00000] in <filename unknown>:0

at UnityEngine.SetupCoroutine.InvokeMember (System.Object behaviour, System.String name, System.Object variable) [0x00000] in <filename unknown>:0

(Filename: Line: -1)
Метод OnGetProfiles существует.

pie 15.01.2013 02:16

Ответ: Вопросы от новичка
 
Все работает. Просто отправлял не правильный параметр. Всем спасибо!)

pax 15.01.2013 02:17

Ответ: Вопросы от новичка
 
$.toJSON(data.response) если использовать тот плугин, который я тебе дал

mauNgerS 15.01.2013 11:11

Ответ: Вопросы от новичка
 
Только что заметил. В консоле юнити мне пишет с жёлтым треугольником:

Combine mesh instance 935 is null.
UnityEngine.Mesh:CombineMeshes(CombineInstance[])
CreateMap:Start() (at Assets/Scripts/CreateMap.cs:390)

При этом всё работает как мне нужно.
О чем это он? Всё же работает.

pax 15.01.2013 11:14

Ответ: Вопросы от новичка
 
возможно в массиве инстансов 935-й элемент - null

Morganolla 15.01.2013 14:03

Ответ: Вопросы от новичка
 
Где то видел, как задать очередность инициализации скриптов для объектов на сцене ( ф-ии Start() в классе) но сейчас не могу найти...:)
Подскажите пожалуйста :)

pax 15.01.2013 14:55

Ответ: Вопросы от новичка
 
Вот тут http://docs.unity3d.com/Documentatio...Execution.html

Morganolla 15.01.2013 16:09

Ответ: Вопросы от новичка
 
У меня почему то очень часто в ф-ии

void Update ()
{
switch(state)
case 0:
...
break;
case 1:
...............................................

используется оператор switch(), который переключает поведение объекта в зависимости от его текущего состояния (state) в игре а у вас??? :)
Многие ли используют этот прием? Или я один такой оригинал?

pax 15.01.2013 16:12

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

mauNgerS 15.01.2013 23:56

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

public int [,] Map = new int[32,32]

Описанными в вики способами получается получать переменные и методы, а вот с массивом не выходит.

Юнити указывает ошибку в том скрипте, который должен получить массив. Ошибка на той строке где используется массив.

NullReferenceException: Object reference not set to an instance of an object
Player.Start () (at Assets/Scripts/Player.cs:19)

seaman 15.01.2013 23:59

Ответ: Вопросы от новичка
 
Чем отличается массив от переменной?- ничем. Вывод - у Вас ошибка в скрипте - приводите скрипт.
ЗЫ: скорее всего не нашли второй скрипт, в котором определен массив.

mauNgerS 16.01.2013 00:21

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

PHP код:

public class CreateMapMonoBehaviour {
    public 
int grid=32;
    public 
int[,] LMap  = new int[38,38]; 

во втором:

PHP код:

public class Player MonoBehaviour {
    public 
CreateMap CreateMap;
    public 
int grid;
    public 
int[,] LMap;
    
    public 
void Awake()
    {
       
CreateMap GetComponent<CreateMap>();
    } 

при этом grid нормально используется, а на массив ошибка.

pie 16.01.2013 00:52

Ответ: Вопросы от новичка
 
Всем привет! Возник вопрос по поводу Веб плеера. Как можно поставить на фон загрузки картинку (в справке показано что можно ставить цвет);

seaman 16.01.2013 01:03

Ответ: Вопросы от новичка
 
Ну во первых вот так:
public CreateMap CreateMap;
лучше не делайте. Зачем самому путаться и других путать, в том числе и компилятор. Лучше так:
public CreateMap createMap;
Скрипты как я понимаю на одном объекте, и LMap во втором получаете так:
LMap = CreateMap.LMap;
Возможно компилятор считает, что Вы пытаетесь получить статическое поле LMap класса CreateMap. Его нет - вот и получается null.

WISHMASTER35 16.01.2013 03:40

Ответ: Вопросы от новичка
 
А в шейдере в методе вычисления света можно определить от какого типа источника вычисляем свет? Нужно изменить вычисление от Direction Light.

pax 16.01.2013 09:21

Ответ: Вопросы от новичка
 
Судя по инклудам можно попробовать
PHP код:

#if defined (DIRECTIONAL) 
...
#endif 

или

PHP код:

#if defined (USING_DIRECTIONAL_LIGHT) 
...
#endif 


Morganolla 16.01.2013 15:17

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

Сообщение от pax (Сообщение 249520)
Можно включать или выключать скрипты например, а так да, я тоже использую когда надо. Свитч быстро работает.

Кстати а как выключать скрипты? Так:
Код:

public class example : MonoBehaviour {
    void Example() {
        GetComponent<PlayerScript>().enabled = false;
    }
}


pax 16.01.2013 15:29

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

Сообщение от Morganolla (Сообщение 249638)
Кстати а как выключать скрипты? Так:

Да, при этом отключаются OnGUI, Update, FixedUpdate, LateUpdate


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

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