|
Unity Мультиплатформенный инструмент для разработки игр |
12.03.2011, 15:12
|
#361
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
Можно, но эффект будет не таким хорошим. Попробуй написать сам а с одной текстурой можно использовать альфаканал.
Shader "Diffuse - Alpha Mask" { Properties { _Color ("Color", Color) = (1,1,1,1) _MainTex ("Base (RGB)", 2D) = "black" {} } SubShader { Tags { "RenderType"="Opaque" } LOD 200 CGPROGRAM #pragma surface surf Lambert
sampler2D _MainTex; float4 _Color;
struct Input { float2 uv_MainTex; };
void surf (Input IN, inout SurfaceOutput o) { half4 c = tex2D (_MainTex, IN.uv_MainTex); float m = c.a; o.Albedo = (1-m)*c.rgb + m*_Color.rgb; } ENDCG } FallBack "Diffuse" }
Проблема с заменой цвета в том, что точно цвет пиксела не определить на границах из-за сглаживания, если только отключить сглаживание текстуры.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
12.03.2011, 15:53
|
#362
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: Фак по Юнити.
Еще раз спасибо.
Сообщение от pax
Попробуй написать сам а с одной текстурой можно использовать альфаканал.
|
Да уже и так все хорошо работает
И тот и другой метод работает. Но вы правы, с маской пожалуй все-таки лучше.
Собственно результат:
|
(Offline)
|
|
13.03.2011, 13:12
|
#363
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: Фак по Юнити.
Как привязать префабу дочерний префаб, как сделано, например, в FirstPersonController?
|
(Offline)
|
|
13.03.2011, 13:19
|
#364
|
Дэвелопер
Регистрация: 04.11.2009
Адрес: Украина, Днепропетровск
Сообщений: 1,480
Написано 662 полезных сообщений (для 1,985 пользователей)
|
Ответ: Фак по Юнити.
Перетащить мышкой один на другой?
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.03.2011, 13:19
|
#365
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
FirstPersonController - это один префаб
|
(Offline)
|
|
13.03.2011, 13:19
|
#366
|
Элита
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений (для 3,923 пользователей)
|
Ответ: Фак по Юнити.
Дочерний префаб? Как это? Имеется ввиду иерархия объектов (один префаб состоит из множества объетов)?
|
(Offline)
|
|
13.03.2011, 13:20
|
#367
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Фак по Юнити.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.03.2011, 13:25
|
#368
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: Фак по Юнити.
Похоже, мы друг друга не поняли)
Вот префаб FirstPersonController состоит одновременно из самого себя, компонента Graphics и камеры Main Camera, но если попробовать добавить камеру любому другому префабу, то спрашивается, заменить ли один префаб на другой(
|
(Offline)
|
|
13.03.2011, 13:27
|
#369
|
Элита
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений (для 3,923 пользователей)
|
Ответ: Фак по Юнити.
Если камеру добавлять в списке префабов, а не в инспекторе, все будет ОК
|
(Offline)
|
|
13.03.2011, 13:30
|
#370
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: Фак по Юнити.
Сообщение от Nuprahtor
Если камеру добавлять в списке префабов, а не в инспекторе, все будет ОК
|
Эм, а это как?
|
(Offline)
|
|
13.03.2011, 13:38
|
#371
|
Элита
Регистрация: 26.07.2008
Сообщений: 1,972
Написано 1,095 полезных сообщений (для 3,923 пользователей)
|
Ответ: Фак по Юнити.
Перепутал окно иерархии с инспектором
В общем, создаешь два объекта - obj1 и obj2. В окне Hierarchy перетягиваешь obj1 на obj2, получится структура.
В окне Project жмешь правой кнопкой - Create Prefab. Перетягиваешь иерархию объектов obj1-obj2 на префаб, теперь созданный префаб является этой иерархией
В Project указав префаб, ты можешь добавлять к нему компоненты, и эти компоненты добавятся ко всем объектам в Hirerarchy.
Это базовые основы работы с префабами
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
13.03.2011, 13:45
|
#372
|
Бывалый
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений (для 995 пользователей)
|
Ответ: Фак по Юнити.
И как я не додумался до такого элементарного
А я как дурак тягал с иерархии понесколько объектов на префаб и огорчался, что "кубик то серый", про структуру вообще из головы вылетело
|
(Offline)
|
|
18.03.2011, 21:22
|
#373
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: Фак по Юнити.
To PAX не подкините пример как сделать так, чтобы на террайне оставались следы от гуссениц.
|
(Offline)
|
|
18.03.2011, 23:44
|
#374
|
AnyKey`щик
Регистрация: 18.03.2011
Сообщений: 1
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Фак по Юнити.
Как сделать, чтобы шарик катался на стрелочках?
|
(Offline)
|
|
19.03.2011, 00:27
|
#375
|
Разработчик
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений (для 100 пользователей)
|
Ответ: Фак по Юнити.
Пардон, уже что-то нашел, наверное этого хватит:
http://www.decane.net/external/gener...munity_1.1.zip
Что-то вроде этого:
using UnityEngine; using System.Collections; public class Tracks : MonoBehaviour { public Mesh mesh; public int maxtracks=500; public Vector3[] newVertices; public Vector2[] newUV; public int[] newTriangles; void Start() { newVertices=new Vector3[maxtracks*4]; newUV=new Vector2[maxtracks*4]; newTriangles=new int[maxtracks*2*3]; for(int i=0;i<maxtracks*4;i+=4){ float x=Random.Range(30,60); float y=Random.Range(30,60); newVertices[i]=new Vector3(x,8,y); newVertices[i+1]=new Vector3(x+1,8,y); newVertices[i+2]=new Vector3(x,8,y+1); newVertices[i+3]=new Vector3(x+1,8,y+1); } for(int i=0;i<maxtracks*4;i+=4){ newUV[i]=new Vector2(0,0); newUV[i+1]=new Vector2(1,0); newUV[i+2]=new Vector2(0,1); newUV[i+3]=new Vector2(1,1); } for(int i=0;i<maxtracks;i++){ newTriangles[i*6]=i*4; newTriangles[i*6+1]=i*4+2; newTriangles[i*6+2]=i*4+1; newTriangles[i*6+3]=i*4+3; newTriangles[i*6+4]=i*4+1; newTriangles[i*6+5]=i*4+2; } mesh = new Mesh(); GetComponent<MeshFilter>().mesh = mesh; mesh.Clear(); mesh.vertices = newVertices; mesh.uv = newUV; mesh.triangles = newTriangles; } void Update() { } }
Последний раз редактировалось Evgen, 19.03.2011 в 01:42.
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:52.
|