Another style test. Trying to go for a Source-esque feel in this one. All of my FPS projects use a movement base styled after Source Engine movement because IMO Source still has the best feeling first person movement of any game.
However, this test was the first time I tried implementing a functional Source-style physics pickup as well as stuff like proper stairs handling. It's... definitely not easy.
Unity isn't good at various things and physics impact sounds is one of them. Still struggling to get it right.
On top of all this I've also got Lua integration via MoonSharp. With the way I use Unity I find myself making a lot of single-use or highly-specific scripts and I think it's wasteful and annoying to have those as full C# scripts. I really think Unity benefits from scripting integration. The confetti explosion is done in Lua, for example:
bTriggered = false
function Start()
victoryparticles = GameObject.FindLSO("winparticles").particleSystem
end
function OnTriggerEnter(c)
if ( not bTriggered ) then
if c.gameObject.HasTag("Player") then
bTriggered = true
victoryparticles.Play();
local params = {
minDistance = 0,
maxDistance = 10,
position = gameObject.transform.position
}
Sound.EmitSound("test/victory", params)
end
end
endThis one was intended for a specific project, but it's an ambitious one that likely won't see the light of day. Still, working on this prompted me to do a massive overhaul of how I handle my shared Unity base going forward.

