Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Unity

Unity Мультиплатформенный инструмент для разработки игр

Ответ
 
Опции темы
Старый 26.01.2013, 02:58   #901
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
Ответ: Фак по Юнити.

Стандартный Фпс контроллер не предназначен для работы с сетью в том виде, в котором он есть. Он не передает никакой логики серверу.
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
(Offline)
 
Ответить с цитированием
Старый 26.01.2013, 03:00   #902
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Фак по Юнити.

Ну я передаю координаты в OnSerializeNetworkView(), этого недостаточно? Самое интересное то, что в редакторе всё работает без ошибок.
(Offline)
 
Ответить с цитированием
Старый 26.01.2013, 03:43   #903
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
Ответ: Фак по Юнити.

Достаточно. Передаешь и читаешь?
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
(Offline)
 
Ответить с цитированием
Старый 26.01.2013, 03:51   #904
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Фак по Юнити.

Ага.
(Offline)
 
Ответить с цитированием
Старый 11.02.2013, 05:49   #905
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Фак по Юнити.

Уважаемые гуру юнити, и с# в частности. Ни у кого нет желания написать краткий фак по андроиду, либо перевести яваскрипты с standart mobile assets на си-шарп и прокоментировать? Нет, перевести с явы на си-шарп я и сам могу, но хотелось бы разобраться полностью в особенностях написания приложения для смартфона. Курение мануалов даётся со скрипом. Был бы весьма признателен, да и в копилке уроков не помешало бы.
(Offline)
 
Ответить с цитированием
Старый 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)
 
Ответить с цитированием
Старый 21.02.2013, 23:24   #907
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

1. Материал назначить renderer.sharedMaterial = myMaterial;
2. Для того чтобы написать скроллер надо писать кастомный редактор своего скрипта (компонента).
3. http://docs.unity3d.com/Documentatio...lityLevel.html
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (22.02.2013)
Старый 22.02.2013, 09:34   #908
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Вопрос появился, по поводу маски, но нарыл ответ, опять же спасибо тебе )
Нашел в одном ответе ты дал ссылку на шейдер маски, вот только там очень не хватает выбора основного цвета. У меня текстуры почти одинаковым цветом.
Помои плиз, можно же как то палитру туда загнать, как например в диффузе, я бы сам с удовольствием сделал, но до CG мне еще очень далеко, я немного только в HLSL работал.

Сам шейдер

Shader "MaskedTexture"
{
   
Properties
   
{
      
_MainTex ("Base (RGB)"2D) = "white" {}
      
_Mask ("Culling Mask"2D) = "white" {}
      
_Cutoff ("Alpha cutoff"Range (0,1)) = 0.1
   
}
   
SubShader
   
{
      
Tags {"Queue"="Transparent"}
      
Lighting Off
      ZWrite Off
      Blend SrcAlpha OneMinusSrcAlpha
      AlphaTest GEqual 
[_Cutoff]
      
Pass
      
{
         
SetTexture [_Mask] {combine texture}
         
SetTexture [_MainTex] {combine textureprevious}
      }
   }


Я понимаю что там надо считать _MainTex c инспектора, но как...
Нашел как пипетку вставить, _Color ("Main Color", Color) = (1,1,1,1)
А вот как сделать связь не могу найти
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 707
Размер:	151.4 Кб
ID:	18838  
__________________
(Offline)
 
Ответить с цитированием
Старый 22.02.2013, 09:59   #909
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

В этом шейдере нет CG, тут чистый ShaderLab и следовательно это Fixed Function (OpenGL ES 1.1)

Shader "MaskedTexture"
{
   
Properties
   
{
      
_Color ("Main Color"Color) = (1,1,1,1)
      
_MainTex ("Base (RGB)"2D) = "white" {}
      
_Mask ("Culling Mask"2D) = "white" {}
      
_Cutoff ("Alpha cutoff"Range (0,1)) = 0.1
   
}
   
SubShader
   
{
      
Tags {"Queue"="Transparent"}
      
Lighting Off
      ZWrite Off
      Blend SrcAlpha OneMinusSrcAlpha
      AlphaTest GEqual 
[_Cutoff]
      
Pass
      
{
         
SetTexture [_Mask
         {
             
constantColor [_Color]
             
combine texture constant DOUBLE
         
}
         
SetTexture [_MainTex] {combine textureprevious}
      }
   }

DOUBLE можешь убрать если не нравится

UPD: Хотя я тут вероятно ошибся... а может и будет работать, я вроде маску покрасил и с ней скомбинировал... попробуй
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (22.02.2013)
Старый 22.02.2013, 10:59   #910
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

СПАСИБО ПАКС!!
UPD: Хотя я тут вероятно ошибся... а может и будет работать, я вроде маску покрасил и с ней скомбинировал... попробуй
Да фигня, главное суть ясна )
Сделал две версии шейдера

MaskedTexture

Shader "MaskedTexture"
{
   
Properties
   
{
         
_Color ("Main Color"Color) = (1,1,1,1)
      
_MainTex ("Base (RGB)"2D) = "white" {}
      
_Mask ("Culling Mask"2D) = "black" {}
      
_Cutoff ("Alpha cutoff"Range (0,1)) = 0.1
   
}
   
SubShader
   
{
      
Tags {"Queue"="Transparent"}
      
Lighting Off
      ZWrite Off
      Blend SrcAlpha OneMinusSrcAlpha
      AlphaTest GEqual 
[_Cutoff]
      
Pass
      
{
         
SetTexture [_Mask
             {
             
constantColor [_ColorMask]
             }
         
SetTexture [_MainTex
             { 
             
constantColor [_Color
             
combine texture constantprevious
             
}
      }
   }




MaskedTexture Fast

Shader "MaskedTexture Fast"
{
   
Properties
   
{
   
_Color ("Main Color"Color) = (1,1,1,1)
      
_MainTex ("Base (RGB)"2D) = "white" {}
      
_Mask ("Culling Mask"2D) = "black" {}
      
_Cutoff ("Alpha cutoff"Range (0,1)) = 0.1
   
}
   
SubShader
   
{
      
Tags {"Queue"="Transparent"}
      
Lighting Off
      ZWrite On
      AlphaTest GEqual 
[_Cutoff]
      
Pass
      
{
         
SetTexture [_Mask
             {
             
constantColor [_ColorMask]
             }
         
SetTexture [_MainTex
             { 
             
constantColor [_Color
             
combine texture constantprevious
             
}
      }
   }



Расскажу в чем разница, в втором варианте я оставил включенном Z-буффер и отключил альфа смешивание Blend SrcAlpha OneMinusSrcAlpha. На сколько я понимаю, таким образом должно работать быстрее, если нет, сообщите.

Слева на рисунке фаст, разница не большая, а при использовании на большом расстоянии вообще остуствует.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 708
Размер:	118.9 Кб
ID:	18839  
__________________
(Offline)
 
Ответить с цитированием
Старый 22.02.2013, 11:53   #911
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Там вероятно я недописал во второй SetTexture
SetTexture [_MainTex] {combine texture previousprevious
т.е. вероятно правильно вот так
Shader "MaskedTexture"
{
   
Properties
   
{
      
_Color ("Main Color"Color) = (1,1,1,1)
      
_MainTex ("Base (RGB)"2D) = "white" {}
      
_Mask ("Culling Mask"2D) = "white" {}
      
_Cutoff ("Alpha cutoff"Range (0,1)) = 0.1
   
}
   
SubShader
   
{
      
Tags {"Queue"="Transparent"}
      
Lighting Off
      ZWrite Off
      Blend SrcAlpha OneMinusSrcAlpha
      AlphaTest GEqual 
[_Cutoff]
      
Pass
      
{
         
SetTexture [_Mask
         {
             
constantColor [_Color]
             
combine texture constant DOUBLE
         
}
         
SetTexture [_MainTex] {combine texture previousprevious}
      }
   }

__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 22.02.2013, 13:16   #912
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Спасибо пакс, да как я сделал тоже норм )
Вот только сейчас заметил большой косяк

using UnityEngine;
using System.Collections;

public class 
LOD MonoBehaviour {
    public 
GameObject prefabHiPolyprefabMidPolyprefabLowPoly;
void Start () 
    {
    
GetComponent<MeshFilter>().mesh prefabHiPoly.GetComponent<MeshFilter>().mesh;
    
GetComponent<Renderer>().material prefabHiPoly.GetComponent<Renderer>().material;

В результате в префабе слетают mesh и material. Что я не так сделал?
В коде я просто беру ссылку меша префаба и ложу в ссылку ГеймОбжекта, и то же самое с материалом.
Их как то надо копировать? А старые компоненты надо зачищать?
__________________
(Offline)
 
Ответить с цитированием
Старый 22.02.2013, 13:20   #913
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Свойство mesh и material создают новые экземпляры объектов, которые можно менять в рантайме, но обычно это делают над объектами сцены. Для получения ресурсов без ущерба для префаба используй следующее:

using UnityEngine;
using System.Collections;

public class 
LOD MonoBehaviour {
    public 
GameObject prefabHiPolyprefabMidPolyprefabLowPoly;
void Start () 
    {
    
GetComponent<MeshFilter>().sharedMesh prefabHiPoly.GetComponent<MeshFilter>().sharedMesh;
    
GetComponent<Renderer>().sharedMaterial prefabHiPoly.GetComponent<Renderer>().sharedMaterial;

__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
burovalex (22.02.2013)
Старый 22.02.2013, 13:34   #914
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Блин, Паск, ну ты точно Сэнсей!!! ))
__________________
(Offline)
 
Ответить с цитированием
Старый 22.02.2013, 16:42   #915
burovalex
Разработчик
 
Аватар для burovalex
 
Регистрация: 04.04.2012
Сообщений: 468
Написано 37 полезных сообщений
(для 60 пользователей)
Ответ: Фак по Юнити.

Опять встрял и не пойму в чем дело.
Есть два скрипта Plant, Grid. В скрипт Plant я достаю терраин из Grid

public class Grid MonoBehaviour {    
    public  static 
Terrain    thisTerrain;

    
void Awake () {
        
thisTerrain = (Terrain)GetComponent<Terrain>();
}} 
public class Plant MonoBehaviour {
void Start () 
    {
    
transform.position.= (float)Grid.thisTerrain.SampleHeight(transform.position);
}} 
А компилятор кричит что ошибка в строке transform.position.y = (float)Grid.thisTerrain.SampleHeight(transform.pos ition);

error CS1612: Cannot modify a value type return value of `UnityEngine.Transform.position'. Consider storing the value in a temporary variable

Якобы во временных переменных косяк. Но переменные то у меня не временные а публичные и thisTerrain еще и статичная

Разобрался, получается что, transfom.position.y может только хранить значение, но ложить туда нельзя??
И что изменить y, на нужное значение самый простое решение transform.position = newVector3(transform.position.x, 10 , transform.position.z); ??
__________________
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


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


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com