forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Физика (http://forum.boolean.name/forumdisplay.php?f=168)
-   -   Проблема с физикой (http://forum.boolean.name/showthread.php?t=16256)

Nerd 31.01.2012 00:16

Проблема с физикой
 
Приделываю Rigidbody к стандартным примитивам - работает нормально.
Пытаюсь приеделать его к чилдам загруженных моделей (экспортил чрез 3dsmax, пробовал разные форматы) - они двигаются, но не работают столкновения (т.е. тела проходят сквозь колайдеры и сквозь друг друга). Масштабирование не юзал, отпарентить пробовал, resetxform пробовал.
чяднт?

Lestar 31.01.2012 02:26

Ответ: Проблема с физикой
 
Или самому добавить коллайдер или в настройках импортера поставить флаг на generate colliders,

pax 31.01.2012 07:47

Ответ: Проблема с физикой
 
Если на моделях меш коллайдеры, то надо ставить им галочку Convex (на некоторых может не сработать). Не выпуклая движущаяся геометрия не поддерживается. Если сложная геометрия, то можно попробовать составить компаунд из нескольких примитивов (добавляй пустышки в чайлды ригидбоди и добавляй им коллайдеры). Если они двигаются анимацией, то ставить галочку Is Kinematic.

Nerd 31.01.2012 17:24

Ответ: Проблема с физикой
 
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
А тут чяднт?

pax 31.01.2012 17:33

Ответ: Проблема с физикой
 
А так:
Код:

...
        void SetMotor(float speed)
        {
                        var motor = hingeJoint.motor;
                        motor.force = speed;
                        hingeJoint.motor = motor;
        }
...


Nerd 31.01.2012 17:57

Ответ: Проблема с физикой
 
Спс. Но теперь ошибки не выдаёт, а не работает (тупо обнуляет ангулярную скорость)

pax 31.01.2012 18:02

Ответ: Проблема с физикой
 
Тут я не виноват)

Nerd 01.02.2012 22:34

Ответ: Проблема с физикой
 
Цитата:

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)
Получаю это при попытке скомпилить проект под андроид (под другие платформы всё ок). Что это может значить?

pax 01.02.2012 22:54

Ответ: Проблема с физикой
 
Андроид SDK установлен? Установлена ли та версия, под которую компилируешь?

Nerd 01.02.2012 23:23

Ответ: Проблема с физикой
 
Да, другой проект вроде компилился (но с глюками - mobile/diffuse сливается в кашу, по крайней мере на эмуляторе)

pax 02.02.2012 00:10

Ответ: Проблема с физикой
 
выкинь эмулятор. на нем вообще тестировать невозможно.

Lestar 02.02.2012 01:34

Ответ: Проблема с физикой
 
Покажи скрины развертки Player Setting, а именно свиток Other Setting и Android SDK Manager с открытыми свитками того, что установлено.

Nerd 02.02.2012 21:25

Ответ: Проблема с физикой
 
Разобрался.
-
...
Пока не имею девайса с ведроидом, просьба проверить этот код:
Код:

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 из указанного массива.

Lestar 03.02.2012 01:36

Ответ: Проблема с физикой
 
Если не нужен мультитач, то простейшее решение http://www.unifycommunity.com/wiki/i...le=OnMouseDown

Nerd 03.02.2012 12:32

Ответ: Проблема с физикой
 
Цитата:

Сообщение от Lestar (Сообщение 218507)
Если не нужен мультитач, то простейшее решение http://www.unifycommunity.com/wiki/i...le=OnMouseDown

Это я видел, мне надо было именно для GUITexture.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot