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=18072)

SGREED 08.04.2013 23:48

Падение игрока с высоты
 
Как проще сделать падение игрока с высоты? ну что бы он при падении отнимал себе жизнь? если у кого есть ссылка на урок по этому вопросу, напишите пожалуйста...Спасибо заранее

seaman 09.04.2013 01:09

Ответ: Падение игрока с высоты
 
Код:

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);
}


ANIK123 09.04.2013 02:23

Ответ: Падение игрока с высоты
 
а если просто брать все коллизии с игроком, и основываясь на силе столкновения защитывать урон?

SGREED 09.04.2013 09:22

Ответ: Падение игрока с высоты
 
можна да

SGREED 09.04.2013 10:38

Ответ: Падение игрока с высоты
 
мой скрипт здоровья и отрисовка
PHP код:

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);
    }


и в этот скрипт надо правильно вписать падение, а я с физикой сильно не сталкивался и поэтому незнаю=(

ANIK123 09.04.2013 12:06

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

добавь это:
Цитата:

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

ап: еще бы добавить проверку, чтобы удары с силой меньше какого-то уровня урон вообще не наносили


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

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