Другой рендер в билде
|
|
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, то нанести урон или что то еще. Но мне это никогда не нужно было, просто в голову пришло, как вариант. Определенно это делается как то по другому.:)
|
|
| |
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, да я попробовал уже - работает. Чем больше высота тем больше в конечном итоге станет переменная dmgDist. Проверял на кубе с Ригидбоди. Если сервер имеет только позицию игрока и ничего больше, то вполне можно по такой логике сделать.
Но, опять же повторюсь, ни разу не приходилось так делать, это всего лишь намек, может сам чего лучше придумаешь.
|
|
| |
zisX | Дата: Воскресенье, 17 Января 2016, 14:40 | Сообщение # 28 |
Neto Zis
Сейчас нет на сайте
| BUFFOMETZ, Да мне щас думать пока некогда, я щас занимаюсь коитусом с инвентарем и синхронизацией с сервером, боюсь что будет дюп, потом что пока пилил основу, несколько раз замечал что-то похожее.
|
|
| |