Skip to content

É um projeto antigo onde eu estava testando uma ideia, se eu poderia gerenciar dinamicamente a instancia de itens no personagem.

Notifications You must be signed in to change notification settings

arycaramez/UnityBowSystem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

UnityBowSystem

Conceito inicial:

  • É um projeto antigo onde eu estava testando uma ideia, se eu poderia gerenciar dinamicamente a instancia de itens no personagem.

Propósito:

  • Criar uma mecânica simples de instanciamento de um arco a um personagem.

Recursos:

  • O script "" permite que o personagem gerencie equipando e trocando o arco quando necessário.
  • Possui uma flecha que ao atingir o alvo consegue se fixar a ele, mesmo que ele se mova ela permanecerá no local.

Organização dos arquivos:

Screenshot_4

Modo de uso:

Obs: um conceito importante, existe um elemento usado no código chamado de ancora (anchor) esses objetos são "Transform" e servem de referencia para as instancias do arco e flecha, ou seja eles serão instanciados dentro destes objetos. As ancoras estão localizadas no objeto do personagem, se o personagem possuir rig recomendo colocar a ancora dentro do osso desejado.

1º - As funções usadas para controlar a exibição tanto do arco/crossbow e da flecha são executadas através de eventos de animação (Animation Events), podem ser implementados nas animações, ou em qualquer script que possua a referencia destes scripts, abaixo serão exibidos os scripts todos estes componentes são atribuidos ao prefab do personagem: -> Script "BowCtrl": É usado para controlar o arco ou crossbow.

Screenshot_2

Possui funções executadas em "Animation Events":

  • "TakeBow" -> usado para que o personagem ative "inHand" e exciba o arco em sua mão.
  • "KeepBow" -> usado para que o personagem desative "inHand" e exciba o arco em suas costas, desequipado.

-> Script "ArrowCtrl": É usado para controlar a exibição da flecha, recebe a referencia do script "BowCtrl", este script precisa da referencia para funcionar.

Screenshot_1

Possui funções executadas em "Animation Events":

  • "ArrowInHandTrue" e "ArrowInHandFalse"-> Ativa/Desativa a exibição da flecha na mão do personagem e passa o objeto da flecha para a ancora o arco ou besta (arrow ou crossbow).
  • "ArrowHideTrue" e "ArrowHideFalse" -> Ativa/Desativa a renderização da flecha deixando ela oculta.

2º - A flecha possi alguns componentes:

  • Script "Arrow Info": Serve para desaticar/ativar a renderização da flecha. Possui uma lista que você pode colocar todos os objetos de renderização, "Mesh Renderer" etc, ligados a flecha.
  • Script "ArrowCollision": Trata da colisão da flecha, segue a imagem:

Screenshot_3

  • Script "ArrowGrip": Script responsável por fazer a flecha se fixar no alvo após a colisão.

Obs: A flecha possui também um "Rigidbody", sem "gravidade", marcado com "isKinematic" igual a verdadeiro.

3º - O bow/crossbow possui um único script:

  • Script "BowInfo" -> contém a força do disparo, a ancora onde a flecha fica quando a arma é recarregada e uma lista de componentes "Renderer" que serão desativados e ativados, quando for requisitado.

Obs: Em caso de dúvida consulte a demo, ela possui uma cena com todos os recursos em uso, use as descrições dos scripts neste documento como um mapa.

O projeto é livre para download e uso, espero que goste e aprecie minha evolução.

About

É um projeto antigo onde eu estava testando uma ideia, se eu poderia gerenciar dinamicamente a instancia de itens no personagem.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published