CullLayers (js) - Форум Игроделов
Вт, 04 Фев 2025, 01:54 
 
Приветствую Вас Гость Главная | Регистрация | Вход
Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
CullLayers (js)
HunjethДата: Сб, 30 Июн 2012, 21:32 | Сообщение # 1
 
Сообщений: 354
Награды: 1
Репутация: 112
Статус: Offline
Code

public var cameras : Camera[];
public var dynamicLayers : int[] = [0];
public var dynamicLayersRange : Vector2 = Vector2(10,10);
static public var dynamicObjectsFarClip : float = 0.55;

function Awake() {
       if(cameras != null) {
        var distances : float[] = new float[32];
        if(dynamicLayers != null) {
         var dynamicDistance : float = (dynamicObjectsFarClip * (dynamicLayersRange.y - dynamicLayersRange.x)) + dynamicLayersRange.x;
         for (var d : int = 0; d < dynamicLayers.Length; d++)
          if (dynamicLayers[d] >= 0 && dynamicLayers[d] < 32)
           distances[dynamicLayers[d]] = dynamicDistance;
        }
        if(cameras.length > 0)
         for(var c : Camera in cameras)
          c.layerCullDistances = distances;
       }
}


Каждый объект с лаером 0 будет не виден если на расстоянии более 10 от камеры
например это может пригодиться на карте где много мусора
СКРИПТ НЕ НАДО ПИХАТЬ В КАЖДЫЙ ОБЪЕКТ!!!


Сообщение отредактировал Hunjeth - Вт, 03 Июл 2012, 16:41
 
Сообщение
Code

public var cameras : Camera[];
public var dynamicLayers : int[] = [0];
public var dynamicLayersRange : Vector2 = Vector2(10,10);
static public var dynamicObjectsFarClip : float = 0.55;

function Awake() {
       if(cameras != null) {
        var distances : float[] = new float[32];
        if(dynamicLayers != null) {
         var dynamicDistance : float = (dynamicObjectsFarClip * (dynamicLayersRange.y - dynamicLayersRange.x)) + dynamicLayersRange.x;
         for (var d : int = 0; d < dynamicLayers.Length; d++)
          if (dynamicLayers[d] >= 0 && dynamicLayers[d] < 32)
           distances[dynamicLayers[d]] = dynamicDistance;
        }
        if(cameras.length > 0)
         for(var c : Camera in cameras)
          c.layerCullDistances = distances;
       }
}


Каждый объект с лаером 0 будет не виден если на расстоянии более 10 от камеры
например это может пригодиться на карте где много мусора
СКРИПТ НЕ НАДО ПИХАТЬ В КАЖДЫЙ ОБЪЕКТ!!!

Автор - Hunjeth
Дата добавления - 30 Июн 2012 в 21:32
ЛевшаДата: Сб, 30 Июн 2012, 22:02 | Сообщение # 2
Черный Волк
 
Сообщений: 7257
Награды: 30
Репутация: 3313
Статус: Offline
А почему в Awake() ? А если камера подвижная ?
Слишком раздутый код.
Это будет делать то же самое, причем в реал тайме:

Code
var kamera : Transform;

function Update () {
       if (Vector3.Distance(transform.position, kamera.position <= 10);
           gameObject.layer = 0
       else gameObject.layer = 10; // Слой который камера не видит.
}


X.cor.R (Prologue)
 
СообщениеА почему в Awake() ? А если камера подвижная ?
Слишком раздутый код.
Это будет делать то же самое, причем в реал тайме:

Code
var kamera : Transform;

function Update () {
       if (Vector3.Distance(transform.position, kamera.position <= 10);
           gameObject.layer = 0
       else gameObject.layer = 10; // Слой который камера не видит.
}

Автор - Левша
Дата добавления - 30 Июн 2012 в 22:02
HunjethДата: Сб, 30 Июн 2012, 22:21 | Сообщение # 3
 
Сообщений: 354
Награды: 1
Репутация: 112
Статус: Offline
загрузка объектов в Awake
и когда уже готовая сцена уже не будет видно что дальше 10
я сделал так что каждый объект с лаером 0 будет не виден если на расстоянии более 10 от камеры

Добавлено (30.06.2012, 22:21)
---------------------------------------------
не путай layerCullDistances и gameObject.layer =

Сообщение отредактировал Hunjeth - Сб, 30 Июн 2012, 22:19
 
Сообщениезагрузка объектов в Awake
и когда уже готовая сцена уже не будет видно что дальше 10
я сделал так что каждый объект с лаером 0 будет не виден если на расстоянии более 10 от камеры

Добавлено (30.06.2012, 22:21)
---------------------------------------------
не путай layerCullDistances и gameObject.layer =


Автор - Hunjeth
Дата добавления - 30 Июн 2012 в 22:21
  • Страница 1 из 1
  • 1
Поиск:
Загрузка...

Game Creating CommUnity © 2009 - 2025