Пятница, 29 Ноября 2024, 17:41

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Проблема с приседанием и т.д.
NOWHEREДата: Четверг, 18 Апреля 2013, 14:05 | Сообщение # 1
участник
Сейчас нет на сайте
Привет всем! Я пытаюсь сделать качественный 3D-хоррор... Но ничего не выходит, т.к. я не до конца знаю Unity.

1 - Во время теста игры и после сборки есть странный баг - стоит пару раз присесть на месте и ты проваливаешься. Я не знаю, что делать... Приседание сделал как анимацию, но... Начал преследовать этот баг.

2 - Что за скрипт необходим для того, чтобы предмет можно было взять и сложить в инвентарь. Я так думаю через Рэйкаст? Но я не знаю как его использовать.

3 - Как сделать так, чтобы в случае, если начинается паранойя, то уголки экрана потихоньку синели.

Помогите, пожалуйста...



FumleadДата: Четверг, 18 Апреля 2013, 14:36 | Сообщение # 2
участник
Сейчас нет на сайте
1 - код в студию.
2 - в инете есть большое количество примеров.
3 - просто рисуй текстуру с заданной прозрачностью


Параноик с гениальным планом по захвату мира.
NeToXДата: Четверг, 18 Апреля 2013, 14:48 | Сообщение # 3
Neto Software
Сейчас нет на сайте
NOWHERE, Я на 90% уверен что игрок проваливается сквозь террейн из-за анимации.Используй скриптовое приседание.



Мои проекты:
[3D]Square World[API VK]
[3D]Dead Prison[Windows]
[2D]Save Fruit[Android,windows]
Fr0sTДата: Пятница, 19 Апреля 2013, 19:15 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Во время приседания высоту контроллера уменьшаешь,а во время вставания к позиции по У прибавляешь то количество на которое уменьшал контроллер и контроллер прежним делаешь





Сообщение отредактировал Fr0sT - Пятница, 19 Апреля 2013, 19:17
seamanДата: Пятница, 19 Апреля 2013, 22:06 | Сообщение # 5
старожил
Сейчас нет на сайте
Код
var controller : CharacterController;
   var oldHeight;
   var flagStand = false;
   var dist;

   function Start ()
   {
        controller = GetComponent(CharacterController);
        oldHeight = controller.height;
        dist = oldheight / 4 ; //вообще - (oldheight - controller.height) / 2, но т.к.  controller.height == oldheight / 2, то получаем это
   }

   function Update()
   {
        if(flagStand && !Physics.Raycast (transform.position, Vector2.up, oldheight / 2))
        {
           StandUp();
           flagStand = false;
        }
        if (Input.GetKey(KeyCode.LeftControl)) Squatting();
        if (Input.GetKeyUp (KeyCode.LeftControl) )
        {
           if(!Physics.Raycast (transform.position, Vector2.up, oldheight / 2)) StandUp();
           else flagStand = true;
        }
   }
   function StandUp()
   {
        controller.height  = oldHeight;
        transform.position.y = transform.position.y + dist + 0.01f
   }
   functoin Squatting()
   {
        controller.height = controller.height / 2;
        transform.position.y = transform.position.y - dist + 0.01f;
   }

Обсуждалось тут:
Так, ссылка запрещена, так что думайте сами


Сообщение отредактировал seaman - Пятница, 19 Апреля 2013, 22:07
nikДата: Суббота, 20 Апреля 2013, 00:38 | Сообщение # 6
just nik
Сейчас нет на сайте
biggrin я вообще присядку двумя капсулами сделал, а дальше достаточно заскриптить чтоб они приближались и отдалялись от друг друга на определенном расстоянии..

BridgeGamingTeam
  • Страница 1 из 1
  • 1
Поиск:

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