Unity Jump Start

Физика в Unity

Unity Jump Start

Сообщение matias 29 мар 2010, 13:49

Проблемка
не могу понять в чем трабл

не колизится enemy с кораблем игрока
хотя пули отлично отрабатывают колизию с enemy с таким же скриптом
вот мои скрипты
надеюсь что они помогут пнять где собака порылась :)


Bullet.js
Синтаксис:
Используется javascript

var BulletSpeed : int;

var explosion: Transform;

function Update () {

//скорость пули
bulletToSpeed = BulletSpeed * Time.deltaTime ;

// перемещение пули
transform.Translate(Vector3.up * bulletToSpeed);



if(transform.position.y >= 7.5){

Destroy(gameObject);

}

}


function OnTriggerEnter( otherObject : Collider ){

        if(otherObject.gameObject.tag == "enemy"){
       
        SpaseShipScript.playerScore +=100;
        Destroy(gameObject);
       
        var tempExplosion = Instantiate(explosion, transform.position, transform.rotation);
        otherObject.gameObject.transform.position.y = 7;
        otherObject.gameObject.transform.position.x = Random.Range(-6,6);
       
        }

}
 


SpaseShipScript.js
Синтаксис:
Используется javascript
var playerSpeed : int;

var playerLives : int;

static var playerScore : int;

var bullet : Rigidbody;




function Update () {

        //  скорости игрока по горизонтали
        playerToMove = (playerSpeed * Input.GetAxis("Horizontal")) * Time.deltaTime ;

        // перемещение игрока
        transform.Translate(Vector3.left * playerToMove );

       
        if(Input.GetKeyDown("space")){

                var tempBullet : Rigidbody;

                tempBullet = Instantiate(bullet, transform.position, transform.rotation);

        }

}




function OnGUI () {

        GUI.Label(Rect(10,10,200,50), "Score: " + playerScore);

        GUI.Label(Rect(10,30,200,50), "Lives: " + playerLives);

}


function OnTriggerEnter( otherObject : Collider ){

        if(otherObject.gameObject.tag == "enemy"){
       
                playerLives --;
       
        }

}
 




EnemyScript.js

Синтаксис:
Используется javascript
var enemySpeed : int;


function Update () {

        atmEnemySpeed = enemySpeed * Time.deltaTime ;
        transform.Translate(Vector3.down * atmEnemySpeed);
       
        if (transform.position.y <= -5){
       
        transform.position.y = 7;
        transform.position.x = Random.Range(-6,6);

       
        }



}
Последний раз редактировалось matias 29 мар 2010, 23:42, всего редактировалось 2 раз(а).
matias
UNец
 
Сообщения: 5
Зарегистрирован: 27 мар 2010, 22:06

Re: Unity Jump Start

Сообщение Mr_Anderson 29 мар 2010, 14:23

как минимум перемещение ригидбоди (расчеты физики) перенести в FixedUpdate
Mr_Anderson
UNIт
 
Сообщения: 143
Зарегистрирован: 16 апр 2009, 13:32

Re: Unity Jump Start

Сообщение Neodrop 29 мар 2010, 16:52

Учимся использовать тег Syntax :-w
Добавить neodrop в Skype
Изображение
"Спасибо!" нашему порталу, вы сможете сказать ЗДЕСЬ.
Если проблема не решается честно, нужно её обмануть! || Per stupiditas at Astra!
Страх порождает слабость. Бесстрашных поражают пули.
Протратившись на блядях байтах, на битах не экономят.
Аватара пользователя
Neodrop
Админ
 
Сообщения: 8480
Зарегистрирован: 08 окт 2008, 15:42
Откуда: Питер
Skype: neodrop
  • Сайт

Re: Unity Jump Start

Сообщение matias 30 мар 2010, 01:48

Neodrop писал(а):Учимся использовать тег Syntax :-w

Уже научился :)
Спасибо за замечание


Mr_Anderson писал(а):как минимум перемещение ригидбоди (расчеты физики) перенести в FixedUpdate


я в программировании пока чайник так что сильно не бей :)

Я так понял что
function OnTriggerEnter надо было заменить на function FixedUpdate ?
если так то не чего не изменилось :(

и еще один прикол появился
пуля не вылетает из центра корабля а на небольшом расстоянии позади его

тут я прикрепил на всякий случай проект
Jet_F1.rar
matias
UNец
 
Сообщения: 5
Зарегистрирован: 27 мар 2010, 22:06

Re: Unity Jump Start

Сообщение Avatarchik 30 мар 2010, 15:40

Во-первых у тебя не стоит коллайдер на самом корабле и смени isTriger (в свойстве коллайдера) = true;(то есть поставь галочку)
Во-вторых у тебя пивот модели стоит хрен знает где и по этому пуля вылетает сзади,создай пустой GameObject ,и засунь в него свою модель корабля тогда будет все в норме.Или измени в скрипте SpaseShipScript строчку
Синтаксис:
Используется javascript
 tempBullet = Instantiate(bullet, transform.position, transform.rotation);
 на
 tempBullet = Instantiate(bullet, transform.position+Vector3(0,1,0), transform.rotation);

Тогда пуля будет вылетать нормально. :D
Добавить ava-karaban в Skype
Аватара пользователя
Avatarchik
UNITрон
 
Сообщения: 274
Зарегистрирован: 04 апр 2009, 15:36
Откуда: Украина(Донецк)
  • ICQ

Re: Unity Jump Start

Сообщение matias 30 мар 2010, 22:51

Спасибо
помогло
Таки я про тупил с коллайдером :)
matias
UNец
 
Сообщения: 5
Зарегистрирован: 27 мар 2010, 22:06


Вернуться в PhysX

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4