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

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

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

Ответ
 
Опции темы
Старый 26.03.2012, 15:25   #1
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Проблема с дверьми

Попытался сделать дверь, написал скрипт:
using UnityEngine;
using System.Collections;

public class 
door MonoBehaviour {
    public  
GameObject DoorObj;
    public  
Vector3 orentant;
    public 
bool open;
    public 
float maxAngle=90.0f;
    public 
float speed=1.0f;
    
bool inProcess=false;
    
float ang=0;
    
//float
    // Use this for initialization
    
void Start () {
        
        
    }
    
    
// Update is called once per frame
    
void Update (){
        if(
Input.GetButtonDown("Fire1")){
            
inProcess=true;
            
open=!open;
              if(
open)speed=-speed;
              if(!
open)speed=-speed;
        }
        if(
inProcess){
            
//DoorObj.collider.isTrigger=true;
            
DoorObj.transform.Rotate(orentant,speed*Time.deltaTime);
            if(
ang>maxAngle && speed>0){
                
inProcess=false;
            }
            
ang+=speed*Time.deltaTime;
            if(
ang+speed*Time.deltaTime<&& speed<0){
                
inProcess=false;
                
//DoorObj.collider.isTrigger=false;
            
}
        }
        
//Debug.Log("test");
    
}

Но никак не могу сделать так, чтоб дверь переставала открываться при соприкосновении с объектом.
Дверь статичный коллайдер, ГГ кинематический
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 26.03.2012, 17:11   #2
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблема с дверьми

Я бы подумал о том, чтобы дверь повесить на петли (HingeJoint), сделать ее физической с RigidBody. Если она открывается, то придавать ей момент в одну сторону, если закрывается - в другую. Вероятно сделать ограничения для джоинта. Тогда если дверь будет закрываться физикой и встретит на пути колайдер - остановится.
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Старый 27.03.2012, 10:21   #3
RegIon
Элита
 
Аватар для RegIon
 
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений
(для 1,012 пользователей)
Ответ: Проблема с дверьми

я тоже так решил, но как настроить этот HingeJoint(не крутиться, а только дрожит) и сместить точку вращения в один из краёв?
__________________
Сайт: http://iexpo.ml
(Offline)
 
Ответить с цитированием
Старый 27.03.2012, 10:55   #4
pax
Unity/C# кодер
 
Аватар для pax
 
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений
(для 5,323 пользователей)
Ответ: Проблема с дверьми

Ну где петли, там и должна быть оранжевая стрелочка

Я как-то пример делал простенький http://forum.boolean.name/showthread.php?t=15843
__________________
Blitz3d to Unity Wiki
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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