Суббота, 20 Апреля 2024, 02:15

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Другой рендер в билде
Другой рендер в билде
BUFFOMETZДата: Воскресенье, 17 Января 2016, 13:03 | Сообщение # 21
почетный гость
Сейчас нет на сайте
Цитата zisX ()
Кстати, ты знаком с сетевой частью игр?

На среднем уровне, если знаю могу подсказать.
zisXДата: Воскресенье, 17 Января 2016, 13:50 | Сообщение # 22
Neto Zis
Сейчас нет на сайте
BUFFOMETZ, Какой можно алгоритм придумать чтобы просчитать на сервере, что игрок упал с большой высоты.

BUFFOMETZДата: Воскресенье, 17 Января 2016, 14:03 | Сообщение # 23
почетный гость
Сейчас нет на сайте
zisX, можно пускать луч под себя, мерить дистанцию dist = Vector3.Distance(terrainPoint, myPosition);, и проверять ее if(dist > 10f). Логика такая: Если под игроком дистанция больше 10, значит он упадет с большой высоты и когда дистанция станет снова 0, то нанести урон или что то еще.
Но мне это никогда не нужно было, просто в голову пришло, как вариант. biggrin
Определенно это делается как то по другому.:)
zisXДата: Воскресенье, 17 Января 2016, 14:07 | Сообщение # 24
Neto Zis
Сейчас нет на сайте
BUFFOMETZ, Ну так это на клиенте проверка, надо серв

BUFFOMETZДата: Воскресенье, 17 Января 2016, 14:21 | Сообщение # 25
почетный гость
Сейчас нет на сайте
zisX,

Код
using UnityEngine;
using System.Collections;

public class Test : MonoBehaviour {

    public float[] yPos;
    private Transform myTransform;
    public float dmgDist;
    
    
    private void Start () {
  myTransform = transform;
  StartCoroutine(Rptr());
    }
    
    private IEnumerator Rptr() {
  for(;;) {
   yPos[0] = myTransform.position.y;
   yield return new WaitForSeconds(0.5f);
   CheckDist();
  }
    }
    
    void CheckDist() {
  yPos[1] = myTransform.position.y;
  
  dmgDist = yPos[0] - yPos[1];
  
  if(dmgDist > 5f) {
   Debug.Log("Ooops");
  }
    }
    
}


Добавлено (17 января 2016, 14:21)
---------------------------------------------
Написал коряво, но думаю примерно логику уловишь?
Хотя не, поясню: Если игрок падает то за определенный промежуток времени(в данном случае 0.5с) разность между Y станет больше обычного, отсюда можно сделать вывод что он падает.


Сообщение отредактировал BUFFOMETZ - Воскресенье, 17 Января 2016, 14:25
zisXДата: Воскресенье, 17 Января 2016, 14:25 | Сообщение # 26
Neto Zis
Сейчас нет на сайте
BUFFOMETZ, Да я понял, попозже попробую, спасибо.

BUFFOMETZДата: Воскресенье, 17 Января 2016, 14:29 | Сообщение # 27
почетный гость
Сейчас нет на сайте
zisX, да я попробовал уже - работает. biggrin
Чем больше высота тем больше в конечном итоге станет переменная dmgDist.
Проверял на кубе с Ригидбоди. Если сервер имеет только позицию игрока и ничего больше, то вполне можно по такой логике сделать.

Но, опять же повторюсь, ни разу не приходилось так делать, это всего лишь намек, может сам чего лучше придумаешь. smile
zisXДата: Воскресенье, 17 Января 2016, 14:40 | Сообщение # 28
Neto Zis
Сейчас нет на сайте
BUFFOMETZ, Да мне щас думать пока некогда, я щас занимаюсь коитусом с инвентарем и синхронизацией с сервером, боюсь что будет дюп, потом что пока пилил основу, несколько раз замечал что-то похожее.

Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Другой рендер в билде
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг