Вопрос-[ответ] по Unity
|
|
QWER56 | Дата: Понедельник, 09 Августа 2010, 10:58 | Сообщение # 1 |
старожил
Сейчас нет на сайте
| Вопрос-[Ответ] по Unity3d
База скриптов Unity3d Курс Уроков по Unity 3D от Alcatraz
ConsMark - поисковик по интернет магазинам.
Сообщение отредактировал QWER56 - Вторник, 26 Июля 2011, 20:54 |
|
| |
Antrix | Дата: Пятница, 19 Июня 2015, 17:51 | Сообщение # 7041 |
почетный гость
Сейчас нет на сайте
| Ребят, помогите со скриптами. В общем, есть два примитивных скрипта для события дверь/ключ. То есть, игрок подымает ключ, переменная в скрипте игрока меняется с false на true. Но само событие смены значения переменной исходит из другого скрипта. Соответственно, висят скрипты на разных объектах (ключ и игрок):
Игрок:
Код using UnityEngine; using System.Collections;
public class PlayerKeys : MonoBehaviour {
public bool cubeKey;
// Use this for initialization void Start () { cubeKey = false; Debug.Log ("Player doesn't have a key!"); } // Update is called once per frame void Update () { } }
Ключ:
Код using UnityEngine; using System.Collections;
public class Test : MonoBehaviour {
public PlayerKeys PK;
// Use this for initialization void Start () {
} // Update is called once per frame void Update () { }
void OnMouseDown() { Destroy (this.gameObject); PK.cubeKey = true; Debug.Log ("Player got a key!"); }
}
Вместо public PlayerKeys PK уже пробовал и gameObject.GetComponent<ScriptName>().cubeKey;. В любом случае в консоли ошибка Object reference not set to an instance of an object в строке
Уже извертелся на пупке. Повторюсь, что скрипты висят на отдельных объектах. Как изменить переменную с одного скрипта (объекта) на другом?
Сообщение отредактировал Antrix - Пятница, 19 Июня 2015, 17:52 |
|
| |
pixeye | Дата: Пятница, 19 Июня 2015, 18:05 | Сообщение # 7042 |
Red Winter Software
Сейчас нет на сайте
| Цитата Antrix ( ) Уже извертелся на пупке. Повторюсь, что скрипты висят на отдельных объектах. Как изменить переменную с одного скрипта (объекта) на другом?
Для начала Destroy (this.gameObject); Должен идти последним в списке команд. Ты уничтожаешь объект и после его уничтожения в нем пытаешься что-то сделать.
Потом тебе ясно дают сказать, что PK не существует. Либо ты его не назначил, либо из-за того что выше
ACTORS - мой фреймворк на Unity Until We Die - игра над которой работаю
Сообщение отредактировал pixeye - Пятница, 19 Июня 2015, 18:09 |
|
| |
MANMANA | Дата: Пятница, 19 Июня 2015, 18:06 | Сообщение # 7043 |
почти ветеран
Сейчас нет на сайте
| В Test-скрипте Цитата Antrix ( ) public PlayerKeys PK; Знамени на public GameObject thePlayer;//перетащи сюда игрока, на котором висит PlayerKeys, со сцены в инспекторе В void Start(){ PlayerKeys playerScript = thePlayer.GetComponent<PlayerKeys>(); } В Update() { .... playerScript.cubeKey=true; }
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
|
|
| |
Antrix | Дата: Пятница, 19 Июня 2015, 18:13 | Сообщение # 7044 |
почетный гость
Сейчас нет на сайте
| MANMANA Вот так и сделал, все заработало! Спасибо преогромнейшее
|
|
| |
MANMANA | Дата: Пятница, 19 Июня 2015, 18:21 | Сообщение # 7045 |
почти ветеран
Сейчас нет на сайте
| Цитата MANMANA ( ) Вот так и сделал, все заработало! Спасибо преогромнейшее Про это замечание от Пиксиглаза ( :-). ) не забудь Цитата pixeye ( ) Destroy (this.gameObject); И ставь после операций над объектом, хотя объект и удаляется реально не сразу, а в конце отработки метода Update, а то потом багов нахватаешься.
http://www.3dbuffer.com/ Текстуры, Unity3D, Blender: Эффекты, скрипты, моделирование, текстурирование, скульптинг VKонтакте 3Dbuffer
Последнее:
Новый раздел "Текстуры"
Как запатентовать, защитить техническое решение, игру, идею
|
|
| |
Antrix | Дата: Вторник, 23 Июня 2015, 08:59 | Сообщение # 7046 |
почетный гость
Сейчас нет на сайте
| Еще вопрос... как заранее подготовленный объект (например стена с уже примененным материалом и скриптом к ней) изначально скрыть и убрать коллизию а при срабатывании триггера (другой объект) сделать видимым и с коллизией?
Прошу прощения, разобрался
Сообщение отредактировал Antrix - Вторник, 23 Июня 2015, 09:08 |
|
| |
seaman | Дата: Вторник, 23 Июня 2015, 22:14 | Сообщение # 7047 |
старожил
Сейчас нет на сайте
| Цитата pixeye ( ) Для начала Destroy (this.gameObject); Должен идти последним в списке команд. Ты уничтожаешь объект и после его уничтожения в нем пытаешься что-то сделать. Это неверно. Читаем мануал: Цитата Actual object destruction is always delayed until after the current Update loop, but will always be done before rendering. Действительное разрушение объекта всегда задерживается до окончания текущего цикла Апдейтов... Так что преспокойно можно вызвать Дестрой и после этого на нем что-то делать. Только до окончания текущего Апдейта. В всяком случае внутри одной функции все отлично должно работать.
|
|
| |
allods | Дата: Пятница, 26 Июня 2015, 20:20 | Сообщение # 7048 |
почти ветеран
Сейчас нет на сайте
| ребят мне надо расставлять объекты ровнять их по 0,25 в playmode и не могу понять как к примеру мышка 0,21 мне нужно подровнять к 0,25 и так далее
|
|
| |
FlyOfFly | Дата: Пятница, 26 Июня 2015, 23:43 | Сообщение # 7049 |
заслуженный участник
Сейчас нет на сайте
| Бесконечный connecting в окне unity, после переустановки его ~~~ какой то баг был, перезапустил и всё гуд
Сообщение отредактировал FlyOfFly - Пятница, 26 Июня 2015, 23:45 |
|
| |
ivan2009 | Дата: Суббота, 27 Июня 2015, 04:33 | Сообщение # 7050 |
частый гость
Сейчас нет на сайте
| Подскажите как заставить вращаться один объект по заданной орбите вокруг другого объекта?
|
|
| |
harmoxyne | Дата: Суббота, 27 Июня 2015, 07:50 | Сообщение # 7051 |
заслуженный участник
Сейчас нет на сайте
| ivan2009, раз два
|
|
| |
Antrix | Дата: Суббота, 27 Июня 2015, 14:19 | Сообщение # 7052 |
почетный гость
Сейчас нет на сайте
| Народ, такоая вот фиговина случилась (может какой либо хот кей нажал когда по карте "летал"): Такое чувство, что то ли угол обзора сменился либо я не знаю... на подлете к объектам/террейну и т.д. все начинает пропадать заранее а не в момент пересечения камеры с объектом. Revert Factory Settings делал уже.
Сообщение отредактировал Antrix - Суббота, 27 Июня 2015, 14:20 |
|
| |
allods | Дата: Суббота, 27 Июня 2015, 14:32 | Сообщение # 7053 |
почти ветеран
Сейчас нет на сайте
| убери перспективу с права в верху в окне редактора есть куб со стрелками клиник на куб
Сообщение отредактировал allods - Суббота, 27 Июня 2015, 14:34 |
|
| |
Antrix | Дата: Суббота, 27 Июня 2015, 14:41 | Сообщение # 7054 |
почетный гость
Сейчас нет на сайте
| Цитата allods ( ) убери перспективу с права в верху в окне редактора есть куб со стрелками клиник на куб Не то... перспектива выключена.
|
|
| |
allods | Дата: Суббота, 27 Июня 2015, 15:06 | Сообщение # 7055 |
почти ветеран
Сейчас нет на сайте
| колесико на мышке, наводи на землю или на какой объект и кликни на колесико, камера сфокусируется на объекте Странно то что у меня такое только тогда когда выключена перспектива (или включено )
Сообщение отредактировал allods - Суббота, 27 Июня 2015, 15:07 |
|
| |
Antrix | Дата: Суббота, 27 Июня 2015, 17:16 | Сообщение # 7056 |
почетный гость
Сейчас нет на сайте
| Не знаю как, но оно само "починилось" :) Еще вопрос... есть FPSController, на котором висит скрипт FirstPersonController. Как мне этот скрипт отключить/включить из другого скрипта? Через GetComponent могу все контролировать, кроме вот этого скрипта.
Разобрался сам. Что бы достать FirstPersonController, нужно было добавить using UnityStandardAssets.Characters.FirstPerson; о чем я совсем забыл. Ну а дальше все как обычно.
Сообщение отредактировал Antrix - Суббота, 27 Июня 2015, 18:03 |
|
| |
Ranger | Дата: Воскресенье, 28 Июня 2015, 08:48 | Сообщение # 7057 |
почти ветеран
Сейчас нет на сайте
| Цитата allods ( ) к примеру мышка 0,21 мне нужно подровнять к 0,25 и так далее { float position = 0.24f float adjustedPosition = Mathf.Round(position/.25f)*.25f; }
|
|
| |
Antrix | Дата: Воскресенье, 28 Июня 2015, 11:11 | Сообщение # 7058 |
почетный гость
Сейчас нет на сайте
| Еще раз всем доброго здравия Есть пара вопросов:
1. Создал модель в blender, есть ли возможность затекстурить его в самой Unity? Если да, то каким образом сие действие провернуть? Только желательно в blender'е "разбить" модель по зонам, на которые будут накладываться текстуры. Может кто поделится мануалом, буду очень признателен. 2. Есть две модели из Speedtree - трава и дерево. Обе одинаково экспортированы в Unity. Обе ставятся на terrain через стандартную функцию распределения растительности. Проблема - дерево отображается нормально а трава видна только на "метр" а дальше исчезает, как будто у неё дистанция прорисовки стоит очень низкая. Как исправить?
Народ, чесслово, на форуме спрашиваю только в тех случаях, когда ничего не могу найти по своему вопросу, выручайте
|
|
| |
Левша | Дата: Воскресенье, 28 Июня 2015, 13:19 | Сообщение # 7059 |
почти ветеран
Сейчас нет на сайте
| Цитата Antrix ( ) у неё дистанция прорисовки стоит очень низкая. Как исправить?
X.cor.R (Prologue)
|
|
| |
Antrix | Дата: Воскресенье, 28 Июня 2015, 19:48 | Сообщение # 7060 |
почетный гость
Сейчас нет на сайте
| Левша Спасибо за подсказку, но не то... Взял для образца две модели травы (не нравится мне спрайтовая стандартная а денег покупать шейдеры из asset store нету ) и сравнил их в speedtree. В общем, модель MED и LOW отличаются парой параметров... но даже когда настроил LOW почти так же как и MED - она все равно имеет маленькую дистанцию прорисовки, в отличии от MED, которая рендерится метров на 500 (образно). Буду копать дальше
Сообщение отредактировал Antrix - Воскресенье, 28 Июня 2015, 19:49 |
|
| |