Alex.SilR

RSS

Day 25 – [SinC] – rayCast fix, C# event and Demo

Today I started fixing the bug of the rayCast of yesterday, it was taking in the triggers of the stands causing the crosshair misaligns up with the projectile. I added the layerMask and passed as argument to the rayCast to ignore the triggers, it was pretty easy to solve.

After that I continued the logic of winning. Now when the player put all the cubes in the stands is calculate the time, the penalty and the total time in seconds.

I’m thinking of changing the mechanics to have the maximum time to complete the level and maximum cubes that can throw out.

Another thing I added was the ability of the projectile to be destroyed after colliding with a cube or not. This increases the level of strategy, because you can use the projectile to reach more than one cube.

The most interesting thing today was the modification of internal time manager. At first that each object had to stop in time had its own variable saying if the time was stopped or not, and also had its own toggle that changed the value of this variable. Now it has a central script that has a static variable and its toggle. It also has a static event that notifies when the time toggle. To make the event I used the internal event system’s C#.

Today has a playable demo.

Controls

  • WASD.
  • Scroll - Velocity
  • Ctrl + Scroll - Mass.
  • Shift – Toggle time.
  • Q e E – Toggle between min and max of velocity and mass.
  • K – Toggle between the projectile be destroyed at the time of collision with the cube or not.

Goal

  • Place the cubes of each color in the stand matching color with the shortest time possible.
  • Penalty for cube thrown out: 0.4s.

PS1: Note1: In WebPlayer I put Screen.lockCursor = true. I don’t know why it is not working.

PS2: As I haven’t studied anything about level design this demo aims to show only the mechanics.

Dia 25 – [SinC] – rayCast fix, C# event e Demo

Hoje comecei corrigindo o bug do rayCast de ontem, que estava pegando nas triggers das stand e fazendo com que a mira se desalinha-se com o projétil. Adicionei a layerMask e passei como argumento para o rayCast para ignorar as triggers, foi bem fácil de resolver.

Depois disso continuei a mecânica de vencimento. Agora quando o jogador colocar todos os cubos dentro dos stands é calculo o tempo e a penalidade e dado o tempo total em segundos.

Estou pensando em modificar a mecânica para ter o tempo máximo para completar o level e o máximo de cubos que se pode jogar para fora.

Outra coisa que adicionei foi a possibilidade do projétil ser destruído após colidir com um cubo ou não. Isso aumenta mais o nível de estratégia por que é possível usar o projétil para atingir mais de um cubo.

A coisa mais interessante de hoje foi a modificação do gerenciador de tempo interno. No começo cada objeto que precisava parar no tempo tinha a sua própria variável dizendo se o tempo estava parado ou não, e tinha também o seu próprio toggle que alterava o valor dessa variável. Agora tem um script central que tem uma variável estática e o seu toggle. Possui também um evento estático que avisa quando o tempo foi alterado. Para fazer o evento usei o sistema de eventos interno do C#.

Hoje tem um demo jogável.

Comandos

  • WASD.
  • Scroll - Velocidade.
  • Ctrl + Scroll - Massa.
  • Shift - Altera entre o tempo parado.
  • Q e E - Alteram entre máximo e mínimo de Massa e Velocidade.
  • K - Altera entre o projétil ser destruído no momento de colisão com o cubo ou não.

Objetivo

  • Colocar os cubos de cada cor no stand de cor correspondente com o menor tempo possível.
  • Penalidade por cubo jogado para fora: 0.4s.


Obs1: No webPlayer coloquei o Screen.lockCursor = true. Não sei por que não esta funcionando.

Obs2: E como ainda não estudei nada sobre level design esse demo tem como objetivo mostrar somente a mecânica.

Download