Показать сообщение отдельно
Старый 21.02.2013, 23:06   #906
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Начал писать LOD, блин, я начинаю влюбляться в юнити, знаю 5% движка, а уже чтото получается )
Написал 3-х ступенчатый LOD, конечно дорабатывать еще надо, но не сегодня (поздновато)

using UnityEngine;
using System.Collections;

public class 
LOD MonoBehaviour {
    public 
Mesh meshHiPolymeshMidPolymeshLowPoly;
    public 
int lodLevelcurrentLodLevel;
    public 
float distanceHiPolydistanceMidPoly;
    public 
float distance;
    public 
Camera thisCamera;
    
// Use this for initialization
void Start () 
    {
    if (
meshHiPoly!=null) {lodLevel++;} 
    if (
meshMidPoly!=null) {lodLevel++;}
    if (
meshLowPoly!=null) {lodLevel++;}
    
//защита от криворукости )
    
if (lodLevel==&& meshLowPoly!=null) {meshMidPoly=meshLowPolymeshLowPoly=null;}
    if (
lodLevel==&& meshLowPoly!=null) {meshHiPoly=meshLowPolymeshLowPoly=null;}
    if (
lodLevel==&& meshMidPoly!=null) {meshHiPoly=meshMidPolymeshMidPoly=null;}    
    
thisCamera Camera.main;
    }
    
    
// Update is called once per frame
void Update () 
    {
    
distance Vector3.Distance(transform.position,thisCamera.transform.position);
    if (
distance<distanceHiPoly && currentLodLevel!=1)
        {
        
currentLodLevel=1;
        
GetComponent<MeshFilter>().mesh meshHiPoly;
        }
    if (
distance<distanceMidPoly && distance>distanceHiPoly && currentLodLevel!=2)
        {
        
currentLodLevel=2;
        
GetComponent<MeshFilter>().mesh meshMidPoly;
        }
    if (
distance>distanceMidPoly && currentLodLevel!=3)
        {
        
currentLodLevel=3;
        
GetComponent<MeshFilter>().mesh meshLowPoly;
        }
    }


Сделал чтобы пользователь ложил меши сам, но косяк в том, что материалы должны быть разные.
Наверное самый простой вариант это префабы ложить?
И еще вопрос, как можно сделать такой же скроллер дистанций как в Про версии LOD'a ?
А еще как можно достать уровень графики, ну чтобы знать fantastic она или normal..?

Также, если у меня чтото сильно коряво, пишите!
__________________
(Offline)
 
Ответить с цитированием