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)

WISHMASTER35 03.04.2012 21:08

Ответ: Фак по Юнити.
 
cahekp, когда куча переменных и на каждую еще создавать и свойство с почти таким же названием, а потом путаться с полями и свойствами это не совсем то что я хотел. Хотя это может иметь смысл, если внутри класса это поле и свойство не используются.
Пока я предпочитаю вообще свойства не использовать. Когда среди переменных какой-то левый код, то он мне глаза мусолит. Но правда при использовании свойства код выглядит проще.
А пример я тогда кажется и вправду пропустил))

SaM_ 04.04.2012 15:43

Ответ: Фак по Юнити.
 
Народ, помогите все таки написать кусочек скрипта, который будет "отбрасывать" префаб вперед относительно игрока :3 Не получается никак, как бы не пробовал.
То есть, надо реализовать выброс предмета из рук.
(С#)
PHP код:

public Rigidbody drop;
Update() {
if (
Input.GetKeyDown("g")) {
Instantiate(drop, new Vector3transform.position.1,  transform.position.y,  transform.position.z), Quaternion.identity);
... 

И еще, почему если использовать new Vector3( tra... то предмет падает относительно игрока со сдвигом, как и запланировано, но в какую бы сторону игрок не повернулся, спавн происходит в одном месте.

Amatsu 04.04.2012 15:55

Ответ: Фак по Юнити.
 
Нет ли у кого ссылки на исходник билдовых шейдеров юнити? Конкретно интересует исходник Transparent/Diffuse

pax 04.04.2012 16:48

Ответ: Фак по Юнити.
 
2Amatsu: http://unity3d.com/support/resources...ilt-in-shaders

2SaM_ времени проверять нет, так что
PHP код:

public Rigidbody drop;
Update() {
if (
Input.GetKeyDown("g")) {
var 
rb Instantiate(droptransform.position transform.forwardQuaternion.identity) as Rigidbody;
rb.AddForce(transform.forward 1000ForceMode.Impulse); 


SaM_ 04.04.2012 18:15

Ответ: Фак по Юнити.
 
pax, теперь объект спавнится относительно игрока правильно. Но во время спавна толчка\откидывания нет :c

pax 04.04.2012 19:18

Ответ: Фак по Юнити.
 
Ошибки есть? Увеличь силу с 1000 на 10000 например.

SaM_ 04.04.2012 20:14

Ответ: Фак по Юнити.
 
Вот такую ошибку выдает:
Цитата:

NullReferenceException: Object reference not set to an instance of an object
weapon_system.Update () (at Assets/Scripts/weapon_system.cs:72)

pax 04.04.2012 20:17

Ответ: Фак по Юнити.
 
PHP код:

public GameObject drop;
Update() {
if (
Input.GetKeyDown("g")) {
var 
go Instantiate(droptransform.position transform.forwardQuaternion.identity) as GameObject;
go.rigidbody.AddForce(transform.forward 1000ForceMode.Impulse); 


SaM_ 04.04.2012 20:42

Ответ: Фак по Юнити.
 
Вот, работает, спасибо!

pax 04.04.2012 20:45

Ответ: Фак по Юнити.
 
PHP код:

public GameObject drop// префаб дропа
Update() {
if (
Input.GetKeyDown("g")) {
// инстансирование дропа и сохранение в переменную go
var go Instantiate(droptransform.position transform.forwardQuaternion.identity) as GameObject;
// добавление импульса твердому телу (RigidBody назначенному префабу)
go.rigidbody.AddForce(transform.forward 1000ForceMode.Impulse); 


SaM_ 04.04.2012 20:50

Ответ: Фак по Юнити.
 
Как всеже изменить немного коодинаты дропа относительно игрока + что бы спавн происходил перед самим игроком?
Я делаю так:
PHP код:

Vector3 newpos =  new Vector3(transform.position.3transform.position.ytransform.position.z) + transform.forward;
rb Instantiate(dropnewpos Quaternion.identity) as GameObject

Спавн происходит там, где и запланировано, но не поворачивается вместе с игроком.

pax 04.04.2012 20:55

Ответ: Фак по Юнити.
 
PHP код:

Vector3 height transform.up 1.5f// высота 1,5 метра
Vector3 forward transform.forward 3// три метра перед собой
Vector3 newpos =  transform.position forward height


WISHMASTER35 04.04.2012 21:04

Ответ: Фак по Юнити.
 
Написал пару функция упрощающих работу с GUI редактора.
Код:

public static T ObjectField<T>(string label, T field) where T : Object {
                GUILayout.BeginHorizontal();
                        GUILayout.Label(label);
                        field = (T)EditorGUILayout.ObjectField((Object)field, typeof(T), false);
                GUILayout.EndHorizontal();
                return field;
        }

public static System.Enum EnumPopup(string label, System.Enum selected) {
                GUILayout.BeginHorizontal();
                        GUILayout.Label( label );
                        selected = EditorGUILayout.EnumPopup(selected);
                GUILayout.EndHorizontal();
                return selected;
        }

И еще пару подобных. Код значительно уменьшился в других местах.
Только не понятно почему where T : System.Enum считается ошибкой.

pax 04.04.2012 21:07

Ответ: Фак по Юнити.
 
Цитата:

Сообщение от WISHMASTER35 (Сообщение 224584)
Только не понятно почему where T : System.Enum считается ошибкой.

http://msdn.microsoft.com/ru-ru/library/d5x73970.aspx

и зачем делать горизонталы с метками, если есть перегруженная функция, которая автоматом метку выводит и все ровно делает?

WISHMASTER35 04.04.2012 21:26

Ответ: Фак по Юнити.
 
pax, что за функция?


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

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