Проблема с приседанием и т.д.
|
|
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
Сейчас нет на сайте
| я вообще присядку двумя капсулами сделал, а дальше достаточно заскриптить чтоб они приближались и отдалялись от друг друга на определенном расстоянии..
BridgeGamingTeam
|
|
| |