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

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

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

Общие вопросы вопросы не попадающие ни в один из доступных разделов

Ответ
 
Опции темы
Старый 11.01.2013, 19:00   #976
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

Не знаю насчет джойнтов. Но для того чтобы не дергалось можно уменьшить Fixed TimeStep (осторожнее чтобы не тормозило). Изменить в RigidBody - Inrerpolate/Extrapolate.
только если в Update просто изменять позицию предмета, но о коллизии тогда речи нету
Я тут когда делал арканоид понял, что ну не получается у меня сделать нормальное отбитие шарика битой с использованием физики. Как ни уменьшаешь Fixed TimeStep - иногда шарик отбивается не верхом биты, а серединой, или даже низом. Именно из-за прерывности расчета физики. (Может, конечно, у меня руки кривые, но - увы). Поэтому я сделал атк.
Двигаю шарик не физикой, а изменением позиции. Коллизии рассчитываю пуская вперед по движению шарика луч (Physx Raycast) на расстояние, определяемое скоростью шарика. Это делается каждый кадр - следовательно нет глюков, вызываемых дискретностью расчета физики.
В арканоиде это вполне нормально прошло. В большой игре нужно проверять не начнет и тормозить.
(Offline)
 
Ответить с цитированием
Старый 11.01.2013, 20:26   #977
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

о для того чтобы не дергалось можно уменьшить Fixed TimeStep
Уменьшать Fixed TimeStep это всегда не выход.
Коллизии рассчитываю пуская вперед по движению шарика луч (Physx Raycast) на расстояние, определяемое скоростью шарика
А Continuous Collision Detection не лучше было бы?

Не знаю физикой или нет двигается объект в Амнезии, но при коллизии он довольно хорошо себя ведет.
(Offline)
 
Ответить с цитированием
Старый 11.01.2013, 20:44   #978
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

А Continuous Collision Detection не лучше было бы?
Я все перепробовал и Continuous и Continuous Dynamic. Говорю - или у меня руки кривые, или... Но мячик все-равно иногда отбивается не верхом биты. Кстати очень хорошо видна дискретность, если у камеры сделать ClearFlag - Don'tClear. Тогда на изображении остаются следы от мяча. Видно, что они дискретны, особенно если двигать физикой..
(Offline)
 
Ответить с цитированием
Старый 11.01.2013, 20:50   #979
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

seaman, если уменьшить timeScale, то тоже хорошо видно дискретность)
(Offline)
 
Ответить с цитированием
Старый 11.01.2013, 21:11   #980
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Вопросы от новичка

Я к чему вообще все это писал? К тому, что можно двигать вручную и обрабатывать коллизии. Во всяком случае у простых форм точно.
(Offline)
 
Ответить с цитированием
Старый 11.01.2013, 23:16   #981
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

Снял маленькое видео http://www.youtube.com/watch?v=Mke9F...ature=youtu.be правда темно получилось.
seaman, вручную так коллизию не обработать. Как видно объекты при коллизии даже вращаются.
А Continuous Dynamic действительно сильно не спасает. Делаю такую жесткую привязку к курсору body.MovePosition( GetTarget() ); но предмет все равно проходит сквозь объекты.

Последний раз редактировалось WISHMASTER35, 12.01.2013 в 01:07.
(Offline)
 
Ответить с цитированием
Старый 12.01.2013, 01:06   #982
WISHMASTER35
Бывалый
 
Аватар для WISHMASTER35
 
Регистрация: 21.12.2008
Адрес: UA
Сообщений: 878
Написано 105 полезных сообщений
(для 357 пользователей)
Ответ: Вопросы от новичка

«Newton» больше акцентирован на физическую точность моделирования, чем на скорость.
Теперь я действительно подумываю, что на PhysX такое не сделаешь.
В Амнезии, кстати, Character реалистично толкает физические объекты. PhysX CharacterController это просто не может сделать.
(Offline)
 
Ответить с цитированием
Старый 12.01.2013, 14:26   #983
GooV
Оператор ЭВМ
 
Регистрация: 11.01.2013
Сообщений: 23
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы от новичка

Всем здравствуйте. Хочу написать скрипт чтобы плеер стукаясь о препятствие получал урон. Написал скрипт для урона, все работает.Осталось одна проблема, уже второй день рою интернет в поисках примера для скрипта проверки коллизии, нарыл 2 функции OnTriggerEnter , OnCollisionEnter. И вот не получается задействовать их, уже не питаю надежд разобраться своими силами, прошу помощи или ссылок на понятные примеры использования этих функций.
Вот сам код:

using UnityEngine;
using System.Collections;

public class colision_of_player : MonoBehaviour {
	
	public GameObject target;
	public int prover;
    	


	
	void OnCollisionEnter(Collision collision1) {
      
        if(collision1.gameObject.tag == "Player")
              {
			
			
	player_health eh=(player_health)target.GetComponent("player_health");
    eh.defuzhels(-10);
			
			
	 	}
    }
	
	
}
(Offline)
 
Ответить с цитированием
Старый 12.01.2013, 14:48   #984
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

Если ты используешь CharacterController, то тебе надо использовать http://docs.unity3d.com/Documentatio...lliderHit.html

Я тут когда-то писал урок про змейку. Там есть обработка столкновений с едой.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
GooV (12.01.2013)
Старый 12.01.2013, 15:27   #985
GooV
Оператор ЭВМ
 
Регистрация: 11.01.2013
Сообщений: 23
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы от новичка

Спасибо за ответ.Я попытался переписать с функцией OnControllerColliderHit, но как-то получилось неважно, + я добавил задержку, чтобы когда осуществляется столкновение то жизни не исчезли моментально .
с этими дополнениями ничего не изменилось, он не реагирует на столкновение никак.
вод код:
using UnityEngine;
using System.Collections;

public class colision_of_player : MonoBehaviour {
	
	public GameObject target;
	public float time;
	public float maxtime;
	public int prover;
	private bool n;
    //public Collision myCollision;
	
	// Use this for initialization
	void Start () {
	maxtime=2.0f;
		time=maxtime;
		
			
	}
	
	// Update is called once per frame
	void Update () 
	{
		
		if (time > 0){time-=Time.deltaTime;}
		if (time < 0){time=0;}
		if (time ==0){time=maxtime;n=true;}
	else{n=false;}
		
		
		
	
	}
	
	

	
	
	public void OnControllerColliderHit(ControllerColliderHit hit) {
      
        if(hit.collider.gameObject.tag == "Ships" & n){
			
			
	player_health eh=(player_health)target.GetComponent("player_health");
    eh.defuzhels(-10);
			
			
	 	}
    }
	
	
}
(Offline)
 
Ответить с цитированием
Старый 12.01.2013, 15:44   #986
GooV
Оператор ЭВМ
 
Регистрация: 11.01.2013
Сообщений: 23
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы от новичка

ураа, разобрался с коллизий, спасибо ещё раз за подсказку.
(Offline)
 
Ответить с цитированием
Старый 12.01.2013, 17:00   #987
GooV
Оператор ЭВМ
 
Регистрация: 11.01.2013
Сообщений: 23
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы от новичка

У меня ещё один вопрос, как копировать вектор движения предмета?
(Offline)
 
Ответить с цитированием
Старый 12.01.2013, 18:36   #988
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

А можно точнее вопрос поставить?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 12.01.2013, 20:51   #989
GooV
Оператор ЭВМ
 
Регистрация: 11.01.2013
Сообщений: 23
Написано 0 полезных сообщений
(для 0 пользователей)
Ответ: Вопросы от новичка

Поточнее можно. мне нужно сделать так чтобы плеер вставая на движущийся блок, как на пол, двигался вместе с ним, для этого я проверяю с начало коллизию плеера с этим движущимся блоком, и при её осуществлении должен двигать плеера так же как и движется блок. И пока я не знаю как осуществить это движение.Я предполагал что можно сделать с помощью вектора, скопировав его с блока и применив это движение на плеера.
(Offline)
 
Ответить с цитированием
Старый 12.01.2013, 21:26   #990
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Вопросы от новичка

В стандартном примере платформера было такое решение http://u3d.as/content/unity-technolo...r-tutorial/3yF
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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