Crouch script - Versione stampabile +- Creare Videogiochi - Game Developer (https://www.making-videogames.net/giochi) +-- Forum: Unity3D Italia (https://www.making-videogames.net/giochi/Forum-Unity3D-Italia) +--- Forum: Richieste di Aiuto per Unity 3D (https://www.making-videogames.net/giochi/Forum-Richieste-di-Aiuto-per-Unity-3D) +--- Discussione: Crouch script (/thread-Crouch-script) |
Crouch script - 93sunderland - 07-04-2016 Ho provato a creare uno script per permettere l'abbassamento del player, cioè il crouching, e questo script l'ho allegato al mio CharacterController. Codice: using UnityEngine; Lo script funziona, però crea dei movimenti un po' rozzi: praticamente quando premo il tasto "Crouch" il CharacterController diminuisce la propria dimensione, tuttavia nel momento di ritornare alla dimensione di partenza, ovvero in piedi, si fa sentire l'effetto delle gravità e quindi il ridimensionamento avviene vibrando. E' un po' brutto da vedere quindi vorrei sapere se qualcuno sa come risolvere questo inconveniente. RE: Crouch script - Blackg96 - 08-04-2016 Codice: variabili : RE: Crouch script - 93sunderland - 09-04-2016 Grazie mille, il tuo script mi è stato di grande aiuto... metto il mio script finale: Codice: using UnityEngine; Adesso il problema di prima è sparito, ma ce n'è un altro: quando l'altezza del personaggio diminuisce, ovviamente tutti i GameObject imparentati con lui si muoveranno. Purtroppo la MainCamera attaccata al personaggio si muoverà di meno rispetto al personaggio stesso, quindi ne risulterà che la MainCamera, mentre si è accovacciati, sarà al di sopra della testa. Quindi vorrei capire un modo per poter muovere la MainCamera in modo "uguale" rispetto al personaggio. RE: Crouch script - Blackg96 - 09-04-2016 Dovresti spostare la MainCamera attraverso un Lerp in una posizione stabilita da te RE: Crouch script - 93sunderland - 09-04-2016 c'ho provato ma non ci riesco: ho provato a introdurre nello stesso script la MainCamera e definire due localPosition, ovvero una di partenza quando è in piedi e una di arrivo quando è accovacciato. Non capisco perchè ma non funziona e credo che il problema sia questa stringa Codice: mainCamera.transform.localPosition = cameraPosition; dove: - mainCamera è il nome della MainCamera precedentemente chiamata da un GameOject.Find - cameraPosition è il nome di un Vector3 precedentemente nominato al di fuori del void il Lerp funziona, infatti il valore cameraPosition.y varia senza problema, ma la MainCamera rimane sempre nella sua posizione di partenza RE: Crouch script - Blackg96 - 10-04-2016 Allora penso che il problema sia legato al fatto che ci sono più script/linee di codice che interagiscono sulla posizione della main camera. Tu non devi far altro che questo : mainCamera.transform.localPosition = Vector3.Lerp(mainCamera.transform.localPosition, camCrouchPos, speed * Time.deltaTime); Prova ad usare questo e controlla che non ci sia nient'altro che interagisca sulla posizione della maincamera. RE: Crouch script - 93sunderland - 10-04-2016 forse ho capito il problema: la MainCamera possiede un'animazione che, dopo aver attivato un trigger, essa si muoverà in un determinato modo. Secondo alcune mie esperienze su Unity ho capito che se un GameObject possiede delle animazioni, che magari normalmente sono solo animation_idle, non riuscirà a muoversi nemmeno sotto comando via script. Sinceramente non so perchè ma sicuramente ci sarà qualcosa che stia ignorando... per caso tu ne sai qualcosa? EDIT: ho provato e ho avuto conferma che quello che ho scritto qua sopra è vero, quindi ho pensato di disattivare l'animator (e riattivarlo solo quando mi interessa l'animazione) ma c'è un problema, ovvero la telecamera è totalmente in un'altra posizione rispetto a prima. RE: Crouch script - Blackg96 - 10-04-2016 Bhè allora ti conviene gestirtela ad animazioni secondo me, invece di fare un lerp, fai che la main camera con un anim si sposta nella posizione del crouch RE: Crouch script - 93sunderland - 10-04-2016 RISOLTO ti faccio vedere lo script finale... benché sembri molto confusionario in verità sembra efficace Codice: using UnityEngine; RE: Crouch script - Blackg96 - 11-04-2016 Benissimo, allora chiudo |