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)

St_AnGer 09.04.2013 14:47

Ответ: Фак по Юнити.
 
Внезапно наткнулся на что то, что не могу понять и найти решение, хотя оно логически должно быть элементарным. Имею пулю, имею стены (на них висит компонент Level). У пули в событии OnCollisionEnter нужно узнать стену в которую попали и изменить у неё переменную health.

Пишу вот так:
Код:

    void OnCollisionEnter(Collision col)
    {
        string name = col.gameObject.name;

        if (name == "wall_1" || name == "wall_2")
        {
           
            Level wall = col.gameObject.GetComponent<Level>();

            if (wall)
                wall.health--;
           
        }

        Debug.Log("bullet collided with: "+name);
        m.FreeEntity(body, gameObject);
    }

условие if (wall), никогда не срабатывает, откуда логически следует, что я неправильно ищу нужный мне компонент на полученом при столкновении GameObject'ом. Если его убрать получаю много следующего мата от юнити:
Код:

NullReferenceException: Object reference not set to an instance of an object
Shot.OnCollisionEnter (UnityEngine.Collision col) (at Assets/Scripts/Shot.cs:49)

Само столкновение происходит прекрасно, в лог строка записывается, пуля удаляется. Переменная health у компонента Level является public-переменной.

Долго гуглил, но наверно я плохой гуглер, не нашёл решения. Не пойму, что я делаю не так?

pax 09.04.2013 14:49

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

Level wall col.gameObject.transform.root.GetComponentInChildren<Level>(); 


St_AnGer 09.04.2013 14:53

Ответ: Фак по Юнити.
 
Заработало! Спасибо! :)

burovalex 24.04.2013 07:46

Ответ: Фак по Юнити.
 
Не могу понять что у меня за фигня с Юнити.
Скачиваю любой проект с Asset Store, а в импортированной сцене все компоненты сброшенные, т.е. с префабов сброшены скрипты, меши, у материалов сброшены текстуры.
Подумал проект корявый. Выкачал Robot Lab, Project Stealth и тд. везде одинаковая картина.

Причем удалил Юнити, подчистил реестр, переставил и нифига. Затона домашнем компе без проблем всё пашет
Началось такое походу после перехода на Unity 4.1.2

pax 24.04.2013 08:04

Ответ: Фак по Юнити.
 
Проект случаем не имеет русских букв в пути?

burovalex 24.04.2013 08:33

Ответ: Фак по Юнити.
 
Не, я русские вообще не использую

pax 24.04.2013 09:07

Ответ: Фак по Юнити.
 
Честно говоря такого бага не встречал, если используешь не последнюю версию Unity, то попробуй обновись.

burovalex 24.04.2013 09:27

Ответ: Фак по Юнити.
 
Может я не правильно донёс.
После импорта, щелкаю два раза на сохранённую сцену, открывается сцена, выбираешь префаб, а в нем у скриптов пишет Missing

Не было такого?

jimon 24.04.2013 16:12

Ответ: Фак по Юнити.
 
как в этом вашем юнити нарисовать красивую прерывистую линию по кривой безье в 3д ? (типа как во флеше) готов заплатить до 50$, руками писать лень

pax 24.04.2013 16:16

Ответ: Фак по Юнити.
 
Есть такое http://starscenesoftware.com/vectrosity.html


У меня есть версия 2.1, сам не покупал, дали когда-то. И не пользовался)

Можно использовать LineRenderer и материал с тайлингом

burovalex 25.04.2013 22:30

Ответ: Фак по Юнити.
 
Доброго времени!
Решил потестить загрузку приложения из VK, через Яндекс.Диск
Но не получается, помогите разобраться.
  • Создал веб-проект в юнити.
  • Зарегил новое приложение в ВК.
  • Авторизовал приложение в Яндексе - вставил ссылку на приложение "http://vk.com/app3603323_4413506?ref=9" (Может надоhttp://vk.com/app3603323_4413506?? Ну в общем пока ни так, ни так не работает)
  • Залил оба файла проекта ForVK.unity3d ForVK.html
  • в ForVK.html поправил u.initPlugin(jQuery("#unityPlayer")[0], "http://yadi.sk/d/zuWFskOz4LgSk);" (сслыка на залитый ForVK.unity3d)
  • В VK, в настройках приложения выбрал IFrame, в http написал ссылку на файл http://yadi.sk/d/0qwj60nD4Lkts (Я понимаю что это не прямая ссылка, но вроде как Яндекс утверждает что можно получить данные http://api.yandex.ru/oauth/doc/dg/co...ion-scheme.xml Хотя я могу и ошибаться)

Ну в общем все манипуляции привели к надписи в ВК "This link was removed or not found."

Наверное я вообще не правильно понял смысл яндекса. Может загружать приложение надо с открытого хоста, а загруженное приложение через АПИ должно управлять файлами?

Ну собственно, вопросы: :)
Куда без заморочек можно залить проект?
Чтобы в ВК загрузить проект как ссылка будет выглядеть (чистый линк,или)?
Ну и если через АПИ ктото доставал данные, то приведите плиз пример запроса для приложения

pax 25.04.2013 23:12

Ответ: Фак по Юнити.
 
1. залить без заморочек можно на свой хостинг.
2. Чистый линк.
3. Вся документация по API тут http://vk.com/developers.php . Можно через Application.ExternalEval выполнять js прямо в странице. Собственно так и происходит обмен данными с js api. Есть вроде рабочий враппер http://unity3d.ru/distribution/viewt...hp?f=13&t=3894

И эта, приложение твое выключено.

burovalex 26.04.2013 17:49

Ответ: Фак по Юнити.
 
Вот нашёл такой вариант в инете - http://forum.uberstrike.com/discussi...-it-to-dropbox

Ну и что-то не проканало
Включил видимость. Но при загрузки теперь вообще ничего не выходит - пустое окно.

Правильно ли я заменил ссылку в html? И без вышесказанного врапера загружаться будет? (Красным строку пометил)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Unity Web Player | VK</title>
<script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js'></script>
<script type="text/javascript">
<!--
var unityObjectUrl = "http://webplayer.unity3d.com/download_webplayer-3.x/3.0/uo/UnityObject2.js";
if (document.location.protocol == 'https:')
unityObjectUrl = unityObjectUrl.replace("http://", "https://ssl-");
document.write('<script type="text\/javascript" src="' + unityObjectUrl + '"><\/script>');
-->
</script>
<script type="text/javascript">
<!--
var config = {
width: 960,
height: 600,
params: { enableDebugging:"0" }

};
var u = new UnityObject2(config);

jQuery(function() {

var $missingScreen = jQuery("#unityPlayer").find(".missing");
var $brokenScreen = jQuery("#unityPlayer").find(".broken");
$missingScreen.hide();
$brokenScreen.hide();

u.observeProgress(function (progress) {
switch(progress.pluginStatus) {
case "broken":
$brokenScreen.find("a").click(function (e) {
e.stopPropagation();
e.preventDefault();
u.installPlugin();
return false;
});
$brokenScreen.show();
break;
case "missing":
$missingScreen.find("a").click(function (e) {
e.stopPropagation();
e.preventDefault();
u.installPlugin();
return false;
});
$missingScreen.show();
break;
case "installed":
$missingScreen.remove();
break;
case "first":
break;
}
});
u.initPlugin(jQuery("#unityPlayer")[0], "https://www.dropbox.com/s/lhihalrl17vuyss/ForVK.unity3d");
});
-->
</script>
<style type="text/css">
<!--
body {
font-family: Helvetica, Verdana, Arial, sans-serif;
background-color: white;
color: black;
text-align: center;
}
a:link, a:visited {
color: #000;
}
a:active, a:hover {
color: #666;
}
p.header {
font-size: small;
}
p.header span {
font-weight: bold;
}
p.footer {
font-size: x-small;
}
div.content {
margin: auto;
width: 960px;
}
div.broken,
div.missing {
margin: auto;
position: relative;
top: 50%;
width: 193px;
}
div.broken a,
div.missing a {
height: 63px;
position: relative;
top: -31px;
}
div.broken img,
div.missing img {
border-width: 0px;
}
div.broken {
display: none;
}
div#unityPlayer {
cursor: default;
height: 600px;
width: 960px;
}
-->
</style>
</head>
<body>
<p class="header"><span>Unity Web Player | </span>VK</p>
<div class="content">
<div id="unityPlayer">
<div class="missing">
<a href="http://unity3d.com/webplayer/" title="Unity Web Player. Install now!">
<img alt="Unity Web Player. Install now!" src="http://webplayer.unity3d.com/installation/getunity.png" width="193" height="63" />
</a>
</div>
<div class="broken">
<a href="http://unity3d.com/webplayer/" title="Unity Web Player. Install now! Restart your browser after install.">
<img alt="Unity Web Player. Install now! Restart your browser after install." src="http://webplayer.unity3d.com/installation/getunityrestart.png" width="193" height="63" />
</a>
</div>
</div>
</div>
<p class="footer">&laquo; created with <a href="http://unity3d.com/unity/" title="Go to unity3d.com">Unity</a> &raquo;</p>
</body>
</html>

pax 26.04.2013 23:27

Ответ: Фак по Юнити.
 
C дропбокса с недавнего времени не отображаются html, если открыть
https://www.dropbox.com/s/b35ueey0gs1rhuv/ForVK.html
то страницу не видно, имхо в этом проблема

seaman 26.04.2013 23:56

Ответ: Фак по Юнити.
 
С html там сейчас вообще какая-то лажа. Проще всего завести бесплатный хостинг на который выкладывать файлы html в которых ссылка unty3d файлы выложенные на дропбокс. Вообще хостингов полно. Можете например по моей подписи.
Хотя многие советуют заливать на mail ru. Я не пробовал.
___________________________________
http://api.hostinger.ru/redir/1171666


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

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