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

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

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

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

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

По первому вопросу разобрался, спасибо.

По второму:
using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
    void OnTriggerStay(Collider other) {
        if (other.attachedRigidbody)
            other.attachedRigidbody.AddForce(Vector3.up * 10);
        
    }
}
А если у меня коллайдер не ригидбоди?
(Offline)
 
Ответить с цитированием
Старый 02.03.2011, 10:19   #347
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Сообщение от Andvrok Посмотреть сообщение
А если у меня коллайдер не ригидбоди?
В функцию передается коллайдер, находящийся в триггере, по нему можно получить GameObject или другой компонент этого объекта. Вот с ними и выполняйте операцию снижения здоровья.

Справка для примера, в ней что-то типа эффекта воздушной подушки или вентилятора вверх описано. Это не значит, что надо делать все как в примере.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Andvrok (02.03.2011)
Старый 02.03.2011, 15:19   #348
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Фак по Юнити.

Опробовал способ с OnTriggerStay - ничего не получилось. Для проверки кода создал сферу-триггер, прицепил ей тот же скрипт - все работает как надо. Видимо для партиклов нужен особый подход..
(Offline)
 
Ответить с цитированием
Старый 02.03.2011, 15:36   #349
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Ну все правильно, ставь объект пустышку со сферическим коллайдером в место костра и все. Это истинный путь джедая )
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Andvrok (02.03.2011)
Старый 02.03.2011, 15:39   #350
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Фак по Юнити.

Повесил на партиклы скрипт
public GameObject go;

	void Start () {
		Instantiate(go,transform.position,transform.rotation);
	}
Вроде работает

Новый вопрос теперь: как перемещать партиклы?

Последний раз редактировалось Andvrok, 02.03.2011 в 17:46.
(Offline)
 
Ответить с цитированием
Старый 02.03.2011, 18:05   #351
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Ну у каждого GO есть трансформ, если менять его позицию (transform.position) то объект будет перемещаться в пространстве...
(Offline)
 
Ответить с цитированием
Старый 02.03.2011, 22:14   #352
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Фак по Юнити.

Если бы все было так просто, я бы не спршивал Пытаюсь перемещать с помощью transform.Translate - результат нулевой.
(Offline)
 
Ответить с цитированием
Старый 02.03.2011, 22:16   #353
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Все достаточно просто. Скрипт перемещения висит на объекте с частицами?
(Offline)
 
Ответить с цитированием
Старый 02.03.2011, 22:21   #354
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Фак по Юнити.

Не совсем. Частицы создаются инстантиатом со скрипта на игроке, следовательно перемещение тоже там.

Если быть точнее - нужно реализовать 'фаерболл', создающийся инстантиатом в префабе игроке и летящий по форварду, правда как реализовать в таком случае обработку коллизии фаерболла со стеной я в непонятках

Пробовал разобрать на примере РПГ с некоторого примера, но там создается ригидбоди, а партиклы создаются уже при столкновении, но не делать же фаерболл ригидбодом?

Ригидбоди то можно толкнуть силой
(Offline)
 
Ответить с цитированием
Старый 02.03.2011, 22:27   #355
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Столкновения можно посчитать кастом. Все еще не вижу проблем. Вешайте скрипт перемещения на партиклы, туда же скрипт проверки столкновений. Лучше это в один скрипт объединить.
(Offline)
 
Ответить с цитированием
Старый 02.03.2011, 22:35   #356
Andvrok
Бывалый
 
Регистрация: 26.07.2009
Сообщений: 785
Написано 362 полезных сообщений
(для 995 пользователей)
Ответ: Фак по Юнити.

Сообщение от pax Посмотреть сообщение
Столкновения можно посчитать кастом.
Ссылочку на референс, пожалуйста, что за касты такие.
(Offline)
 
Ответить с цитированием
Старый 02.03.2011, 22:38   #357
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

Пожалуйста, но можно и поучиться пользоваться справкой и поиском в ней
http://unity3d.com/support/documenta...e/Physics.html
http://unity3d.com/support/documenta...s.Raycast.html
и другие касты, выбирай, которые лучше подойдут.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Andvrok (02.03.2011)
Старый 12.03.2011, 14:46   #358
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений
(для 100 пользователей)
Ответ: Фак по Юнити.

Возможно ли сделать такой шейдер который заменял бы в текстуре все пикселы определенного цвета (например белого r=255 g=255 b=255) на тот который указан в anyobject.renderer.material.color.

Ну или иначе говоря:
Когда мы меняем цвет через renderer.material.color вся текстура изменяет свой цвет.
А нужно, чтобы цвет изменялся только у былых пикселей.
Миниатюры
Нажмите на изображение для увеличения
Название: пример.jpg
Просмотров: 767
Размер:	21.4 Кб
ID:	12944  
(Offline)
 
Ответить с цитированием
Старый 12.03.2011, 14:52   #359
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Фак по Юнити.

самый простой способ - сделать у текстуры альфаканал (если конечно он не используется) и значение альфы использовать для интерполирования цвета от цвета текстуры до указанного цвета. Если альфаканал используется, то можно взять еще одну текстуру, и использовать какой-то ее канал для данной задачи. Писал как-то похожий шейдер:
Shader "Masked/Diffuse" {
    
Properties {
        
_Color ("Color"Color) = (1,1,1,1
        
_MainTex ("Base (RGB)"2D) = "white" {}
        
_Mask ("Mask (Grayscale)"2D) = "black" {}
    }
    
SubShader {
        
Tags "RenderType"="Opaque" }
        
LOD 200
        
        CGPROGRAM
        
#pragma surface surf Lambert

        
sampler2D _MainTex;
        
sampler2D _Mask;
        
float4 _Color;

        
struct Input {
            
float2 uv_MainTex;
            
float2 uv_Mask;
        };

        
void surf (Input INinout SurfaceOutput o) {
            
half4 c tex2D (_MainTexIN.uv_MainTex);
            
float m tex2D (_MaskIN.uv_Mask).r;
            
o.Albedo =  (1-m)*c.rgb m*_Color.rgb;
            
o.Alpha c.a;
        }
        
ENDCG
    

    
FallBack "Diffuse"

(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Evgen (12.03.2011)
Старый 12.03.2011, 15:08   #360
Evgen
Разработчик
 
Аватар для Evgen
 
Регистрация: 12.01.2011
Адрес: Moscow
Сообщений: 419
Написано 68 полезных сообщений
(для 100 пользователей)
Ответ: Фак по Юнити.

Спасибо Pax. Я в шейдерах ничего не смыслю.
А можно что то типа:
if(color=(255,255,255)color=materal.color;
чтобы обойтись без текстуры маски.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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