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

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

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

Ответ
 
Опции темы
Старый 08.04.2013, 23:48   #1
SGREED
ПроЭктировщик
 
Аватар для SGREED
 
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
Падение игрока с высоты

Как проще сделать падение игрока с высоты? ну что бы он при падении отнимал себе жизнь? если у кого есть ссылка на урок по этому вопросу, напишите пожалуйста...Спасибо заранее
(Offline)
 
Ответить с цитированием
Старый 09.04.2013, 01:09   #2
seaman
Знающий
 
Регистрация: 08.01.2013
Адрес: Самара
Сообщений: 284
Написано 104 полезных сообщений
(для 180 пользователей)
Ответ: Падение игрока с высоты

bool fall;
float timeStartFall;
public limit = 5;
...
if(!isGround) 
{
   fall = true;
   timeStartFall = Time.time;
}
if(isGround && fall)
{
   float deltaTime = Time.time - timeStartFall;
   fall = false;
   if (deltaTime > limit) Char.GetHP(deltaTime);
}
(Offline)
 
Ответить с цитированием
Старый 09.04.2013, 02:23   #3
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Падение игрока с высоты

а если просто брать все коллизии с игроком, и основываясь на силе столкновения защитывать урон?
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием
Старый 09.04.2013, 09:22   #4
SGREED
ПроЭктировщик
 
Аватар для SGREED
 
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
Ответ: Падение игрока с высоты

можна да
(Offline)
 
Ответить с цитированием
Старый 09.04.2013, 10:38   #5
SGREED
ПроЭктировщик
 
Аватар для SGREED
 
Регистрация: 05.02.2013
Сообщений: 149
Написано одно полезное сообщение
Ответ: Падение игрока с высоты

мой скрипт здоровья и отрисовка
using UnityEngine;
using System.Collections;

public class 
PlayerHealth MonoBehaviour {
    
    public 
int maxHealth;
    public 
int _curHealth;
    public 
float healthBarLength;

    
// Use this for initialization
    
void Start () {
    
healthBarLength Screen.width /4;
        if(
maxHealth<1maxHealth=1;
    }
    
    
// Update is called once per frame
    
void Update () {
        
    }
    
void OnGUI(){
        
GUI.Box(new Rect(10,10,healthBarLength,20),_curHealth "/" +maxHealth);
    }
        public 
void AddjustCurrentHealthint adj) {
            
_curHealth += adj;
            if(
_curHealth 0_curHealth =0;
        if(
_curHealth 1Destroy(gameObject);
            if(
_curHealth maxHealth_curHealth maxHealth;
            
healthBarLength = (Screen.width 4) * (_curHealth / (float)maxHealth);
    }

и в этот скрипт надо правильно вписать падение, а я с физикой сильно не сталкивался и поэтому незнаю=(
(Offline)
 
Ответить с цитированием
Старый 09.04.2013, 12:06   #6
ANIK123
Знающий
 
Аватар для ANIK123
 
Регистрация: 29.11.2010
Сообщений: 244
Написано 31 полезных сообщений
(для 49 пользователей)
Ответ: Падение игрока с высоты

не уверен адресуется ли пост выше Мне, но на всякий случай отвечу

добавь это:
void OnCollisionEnter(Collision collision) {
AddjustCurrentHealth(-collision.relativeVelocity.magnitude * (нужный вам скаляр));
}
никогда сам так не делал, поэтому играйтесь сами
например можно учитывать еше и массу обьекта, с которым столкнулись

ап: еще бы добавить проверку, чтобы удары с силой меньше какого-то уровня урон вообще не наносили
__________________
Intel Core i3-4005U (1.7 ГГц), 4 ГБ ОЗУ, nVidia GeForce 940M 4 ГБ, Win8.1
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

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

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


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


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