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

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

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

Ответ
 
Опции темы
Старый 31.01.2012, 00:16   #1
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Проблема с физикой

Приделываю Rigidbody к стандартным примитивам - работает нормально.
Пытаюсь приеделать его к чилдам загруженных моделей (экспортил чрез 3dsmax, пробовал разные форматы) - они двигаются, но не работают столкновения (т.е. тела проходят сквозь колайдеры и сквозь друг друга). Масштабирование не юзал, отпарентить пробовал, resetxform пробовал.
чяднт?
(Offline)
 
Ответить с цитированием
Старый 31.01.2012, 02:26   #2
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
Ответ: Проблема с физикой

Или самому добавить коллайдер или в настройках импортера поставить флаг на generate colliders,
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nerd (31.01.2012)
Старый 31.01.2012, 07:47   #3
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблема с физикой

Если на моделях меш коллайдеры, то надо ставить им галочку Convex (на некоторых может не сработать). Не выпуклая движущаяся геометрия не поддерживается. Если сложная геометрия, то можно попробовать составить компаунд из нескольких примитивов (добавляй пустышки в чайлды ригидбоди и добавляй им коллайдеры). Если они двигаются анимацией, то ставить галочку Is Kinematic.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
Kian Ni (15.02.2014), Nerd (31.01.2012)
Старый 31.01.2012, 17:24   #4
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Ответ: Проблема с физикой

okay
...
	void SetMotor(float speed)
	{
			 hingeJoint.motor.force = speed;
	}
...
Выдаёт ошибку
Cannot modify a value type return value of `UnityEngine.HingeJoint.motor'. Consider storing the value in a temporary variable
А тут чяднт?
(Offline)
 
Ответить с цитированием
Старый 31.01.2012, 17:33   #5
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблема с физикой

А так:
...
	void SetMotor(float speed)
	{
                         var motor = hingeJoint.motor;
                         motor.force = speed;
			 hingeJoint.motor = motor;
	}
...
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Nerd (31.01.2012)
Старый 31.01.2012, 17:57   #6
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Ответ: Проблема с физикой

Спс. Но теперь ошибки не выдаёт, а не работает (тупо обнуляет ангулярную скорость)
(Offline)
 
Ответить с цитированием
Старый 31.01.2012, 18:02   #7
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблема с физикой

Тут я не виноват)
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 01.02.2012, 22:34   #8
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Ответ: Проблема с физикой

Error building Player: IndexOutOfRangeException: Array index is out of range.
UnityEditor.HostView:OnGUI()
---
Exception: Error building Player: IndexOutOfRangeException: Array index is out of range.
UnityEditor.BuildPlayerWindow.BuildPlayerWithDefau ltSettings (Boolean askForBuildLocation, BuildOptions forceOptions) (at C:/BuildAgent/work/842f9557127e852/Editor/Mono/BuildPlayerWindow.cs:367)
UnityEditor.BuildPlayerWindow.GUIBuildButtons (Boolean enableBuildButton, Boolean enableBuildAndRunButton, Boolean canInstallInBuildFolder) (at C:/BuildAgent/work/842f9557127e852/Editor/Mono/BuildPlayerWindow.cs:972)
UnityEditor.BuildPlayerWindow.ShowBuildTargetSetti ngs () (at C:/BuildAgent/work/842f9557127e852/Editor/Mono/BuildPlayerWindow.cs:953)
UnityEditor.BuildPlayerWindow.OnGUI () (at C:/BuildAgent/work/842f9557127e852/Editor/Mono/BuildPlayerWindow.cs:726)
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
Rethrow as TargetInvocationException: Exception has been thrown by the target of an invocation.
System.Reflection.MonoMethod.Invoke (System.Object obj, BindingFlags invokeAttr, System.Reflection.Binder binder, System.Object[] parameters, System.Globalization.CultureInfo culture)
System.Reflection.MethodBase.Invoke (System.Object obj, System.Object[] parameters)
UnityEditor.HostView.Invoke (System.String methodName, System.Object obj) (at C:/BuildAgent/work/842f9557127e852/Editor/Mono/GUI/DockArea.cs:225)
UnityEditor.HostView.Invoke (System.String methodName) (at C:/BuildAgent/work/842f9557127e852/Editor/Mono/GUI/DockArea.cs:218)
UnityEditor.HostView.OnGUI () (at C:/BuildAgent/work/842f9557127e852/Editor/Mono/GUI/DockArea.cs:119)
Получаю это при попытке скомпилить проект под андроид (под другие платформы всё ок). Что это может значить?
(Offline)
 
Ответить с цитированием
Старый 01.02.2012, 22:54   #9
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблема с физикой

Андроид SDK установлен? Установлена ли та версия, под которую компилируешь?
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 01.02.2012, 23:23   #10
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Ответ: Проблема с физикой

Да, другой проект вроде компилился (но с глюками - mobile/diffuse сливается в кашу, по крайней мере на эмуляторе)
(Offline)
 
Ответить с цитированием
Старый 02.02.2012, 00:10   #11
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблема с физикой

выкинь эмулятор. на нем вообще тестировать невозможно.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 02.02.2012, 01:34   #12
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
Ответ: Проблема с физикой

Покажи скрины развертки Player Setting, а именно свиток Other Setting и Android SDK Manager с открытыми свитками того, что установлено.
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
(Offline)
 
Ответить с цитированием
Старый 02.02.2012, 21:25   #13
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Ответ: Проблема с физикой

Разобрался.
-
...
Пока не имею девайса с ведроидом, просьба проверить этот код:
using UnityEngine;
using System.Collections;

public class mobile_clicker : MonoBehaviour {

public GUITexture[] butts;

void OnUpdate()
{
    foreach(Touch t in Input.touches)
    {
       if(t.phase == TouchPhase.Began)
       {
	 foreach(GUITexture b in butts)
	 {
		Rect r = b.GetScreenRect();
         	if( QuadCollide(r.x,r.y,r.width,r.height,t.position.x,t.position.y) )
         	{
         	 b.SendMessage("OnMouseDown", null, SendMessageOptions.DontRequireReceiver);
         	}
	 }
       }
    }
}

bool QuadCollide(float x,float y,float w,float h,float ix,float iy)
{
	if(ix>=x)
	{
		if(iy>=y)
		{
			if(ix<=(x+w))
			{
				if(iy<=(y+h))
				{
					return true;
				}				
			}
		}
	}
return false;
}
	
}
Оно должно имитировать OnMouseDown для GUITexture из указанного массива.
(Offline)
 
Ответить с цитированием
Старый 03.02.2012, 01:36   #14
Lestar
Бывалый
 
Аватар для Lestar
 
Регистрация: 24.05.2011
Адрес: Украина,Харьков
Сообщений: 890
Написано 359 полезных сообщений
(для 880 пользователей)
Ответ: Проблема с физикой

Если не нужен мультитач, то простейшее решение http://www.unifycommunity.com/wiki/i...le=OnMouseDown
__________________
Нам суждено построить мосты и храмы,которых никогда не существовало и не могло существовать в природе.
(Offline)
 
Ответить с цитированием
Старый 03.02.2012, 12:32   #15
Nerd
Чудо-кот
 
Аватар для Nerd
 
Регистрация: 22.02.2011
Сообщений: 901
Написано 480 полезных сообщений
(для 1,471 пользователей)
Ответ: Проблема с физикой

Сообщение от Lestar Посмотреть сообщение
Если не нужен мультитач, то простейшее решение http://www.unifycommunity.com/wiki/i...le=OnMouseDown
Это я видел, мне надо было именно для GUITexture.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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