PixelToPixel Wizard

Раздел, посвящённый всему, что связано с программированием для Редактора Юнити. Скрипты Редактора, Wizards и прочее.

PixelToPixel Wizard

Сообщение gnoblin 11 мар 2011, 19:58

Визард для позиционирования произвольных объектов с плоской поверхностью пиксель-в-пиксель перед перспективной камерой (изменяется расстояние от объекта до камеры).

В примере куб сплющен почти до нуля по оси Z, если нужно располагать так более объемные объекты - нужно еще вводить поправку в половину размера объекта по оси Z.

Синтаксис:
Используется csharp
using UnityEngine;
using UnityEditor;
using System.Collections;

public class PositionForPixelToPixelWizard :  ScriptableWizard
{
    [MenuItem ("MediaWork/PixelToPixel")]
    static void CreateWizard ()
    {
        ScriptableWizard.DisplayWizard<PositionForPixelToPixelWizard>("PixelToPixel", "Go!");
    }
    void OnWizardCreate ()
    {
        Init();
    }  
    void OnWizardUpdate () {
        helpString = "";
    }

    public Transform target;

    //in pixels
    public float needed_pixel_width = 100f;

    //in units
    public float target_width = 10f;
   
    void Init()
    {
        if (Selection.activeTransform == null)
        {
            return;
        }
        float test_z = 20f;
        Transform target = Selection.activeTransform;
        Vector3 p1 = Camera.main.ScreenToWorldPoint(new Vector3(0, 0, test_z));
        Vector3 p2 = Camera.main.ScreenToWorldPoint(new Vector3(needed_pixel_width, 0, test_z));

       
        float test_width = Mathf.Abs(p1.x - p2.x);

        float distance = (test_z * target_width) / test_width;

        Debug.Log("distance: " + distance);

        Vector3 pos = Camera.main.transform.position + new Vector3(0, 0, distance);
        target.position = pos;
    }
}
У вас нет доступа для просмотра вложений в этом сообщении.
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: PixelToPixel Wizard

Сообщение gnoblin 17 мар 2011, 22:03

пардон, в эдитор моде не работает нормально почему-то :)

завтра выложу 3 рантайм скрипта на эту тему
skypeid: madkust
Мои крайние проекты:
Убойный Хоккей
Cube Day Z (альфа)
Аватара пользователя
gnoblin
Адепт
 
Сообщения: 4633
Зарегистрирован: 08 окт 2008, 17:23
Откуда: Минск, Беларусь
Skype: madkust
  • Сайт

Re: PixelToPixel Wizard

Сообщение Paul Siberdt 17 мар 2011, 22:58

Эх, Gnoblin... таки не хватает Вам, батенька, презентабельности. :D
Аватара пользователя
Paul Siberdt
Адепт
 
Сообщения: 5317
Зарегистрирован: 20 июн 2009, 21:24
Откуда: Moscow, Russia
Skype: siberdt
  • Сайт


Вернуться в Editor

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3