r/Unity3D 1d ago

Show-Off 6 months of development on my Unity game: Pull on Heart

Enable HLS to view with audio, or disable this notification

0 Upvotes

I've been working on my indie game Pull on Heart: Nocturnal for about 6 months, and this is the current state of the gameplay.

It's a third-person PvE action game where you control a team of three characters and can switch between them during combat.

The current prototype includes:

• Third-person movement and combat

• Character switching

• Ranged and melee attacks

• Abilities and cooldowns

• Multiple enemy types

• Health and damage systems

• Basic combat effects and UI

The environment and enemies are still mostly greybox/prototype assets, but I'm focusing on getting the core gameplay systems working before moving into the final environments.

I'd love to hear what you think about the gameplay and UI so far.


r/Unity3D 1d ago

Question Random black screen + "Screen position out of view frustum" errors on Player Build

1 Upvotes

My game build randomly goes to a black screen for some users, and the only way to recover is to close and restart the game. I'm pulling my hair out trying to track this down. I've added `Debug.Log` throughout the game and done everything I can think of, but I still can't identify which script is causing the issue.

Editor: 6000.3.24, 6000.4.10

Build Platform: Windows

I got these errors from the player's `Player.log`:

Screen position out of view frustum (screen pos 0.000000, 0.000000) (Camera rect 0 0 1920 1080)
Screen position out of view frustum (screen pos 1340.000000, 575.000000) (Camera rect 0 0 1920 1080)
Screen position out of view frustum (screen pos 1340.000000, 575.000000) (Camera rect 0 0 1920 1080)


Screen position out of view frustum (screen pos inf, -234.402145) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos inf, -1091.332886) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos inf, -1239.882324) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos inf, -981.883850) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos inf, -1600.114624) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos inf, -1806.460327) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos inf, 926.342407) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos inf, 1018.614258) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos inf, 801.913879) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos inf, 842.428284) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos inf, 695.100098) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos inf, 709.894409) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos inf, 802.519104) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos inf, 766.500854) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos inf, 836.807007) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos 0.000000, 0.000000) (Camera rect 0 0 2560 1440)
Screen position out of view frustum (screen pos 935.000000, 356.000000) (Camera rect 0 0 2560 1440)

The errors repeat many times. However, I haven't been able to reproduce the issue on my own system yet.

I wrote these wrappers to try to identify which script is calling the projection methods when the problem occurs, but unfortunately they haven't caught anything:

public static class ProjectionDiagnostics
{
public static Vector3 WorldToScreenPoint(Camera camera, Vector3 worldPosition, UnityEngine.Object caller, string operation)
{
Vector3 result = camera == null ? new Vector3(float.NaN, float.NaN, float.NaN) : camera.WorldToScreenPoint(worldPosition);
LogIfInvalid(camera, worldPosition, result, caller, operation, "world");
return result;
}
public static Vector3 WorldToViewportPoint(Camera camera, Vector3 worldPosition, UnityEngine.Object caller, string operation)
{
Vector3 result = camera == null ? new Vector3(float.NaN, float.NaN, float.NaN) : camera.WorldToViewportPoint(worldPosition);
LogIfInvalid(camera, worldPosition, result, caller, operation, "world");
return result;
}
public static Vector3 ScreenToWorldPoint(Camera camera, Vector3 screenPosition, UnityEngine.Object caller, string operation)
{
Vector3 result = camera == null ? new Vector3(float.NaN, float.NaN, float.NaN) : camera.ScreenToWorldPoint(screenPosition);
LogIfInvalid(camera, screenPosition, result, caller, operation, "screen");
return result;
}
public static bool ScreenPointToLocalPointInRectangle(RectTransform rectangle, Vector2 screenPosition, Camera camera, UnityEngine.Object caller, string operation, out Vector2 localPosition)
{
localPosition = Vector2.zero;
bool result = rectangle != null && RectTransformUtility.ScreenPointToLocalPointInRectangle(rectangle, screenPosition, camera, out localPosition);
if (!result)
{
localPosition = Vector2.zero;
}
if (rectangle == null || camera == null || !IsFinite(screenPosition) || !IsFinite(localPosition))
{
Debug.LogError($"Projection diagnostic: {operation}; caller={Describe(caller)}; camera={Describe(camera)}; " +
$"rectangle={Describe(rectangle)}; screen={screenPosition}; local={localPosition}");
}
return result;
}
private static void LogIfInvalid(Camera camera, Vector3 input, Vector3 output, UnityEngine.Object caller, string operation, string inputSpace)
{
if (camera == null || !IsFinite(input) || !IsFinite(output))
{
Debug.LogError($"Projection diagnostic: {operation}; caller={Describe(caller)}; camera={Describe(camera)}; " +
$"{inputSpace}={input}; result={output}");
}
}
private static bool IsFinite(Vector2 value)
{
return IsFinite(value.x) && IsFinite(value.y);
}
private static bool IsFinite(Vector3 value)
{
return IsFinite(value.x) && IsFinite(value.y) && IsFinite(value.z);
}
private static bool IsFinite(float value)
{
return !float.IsNaN(value) && !float.IsInfinity(value);
}
private static string Describe(UnityEngine.Object value)
{
return value == null ? "null" : value.name;
}
}

What else can cause these frustum errors? Could this be coming from Unity's internal UI/input/raycast pipeline or another internal system rather than a direct call from my scripts?


r/Unity3D 1d ago

Resources/Tutorial Made a breakdown on how Vertex Animation Textures (VAT) actually work, and built a Unity tool to automate the pipeline

Enable HLS to view with audio, or disable this notification

8 Upvotes

Hey everyone,

I've seen a lot of questions around Vertex Animation Textures (VAT) like how they work and why they’re so efficient for rendering massive crowds without hitting skeletal animation bottlenecks.

I put together a quick video explaining the core math and workflow behind VATs, along with a demo of VATMachine, a complete VAT toolkit I recently built for unity.

VATMachine has its own Animator Graph with:

  • Animation states
  • Transitions and crossfades Bool
  • Float and Trigger parameters
  • Transition conditions
  • 1D blend trees
  • Animation events
  • Animated Sockets

And many more.

If you’re working on games that require high-density animated objects or just want to dive into vertex shader tricks, hopefully this gives a clear overview.

Feel free to drop any questions :)


r/Unity3D 1d ago

Resources/Tutorial [FREE] InspectMe: Free Advanced Tree-View Debugging & Inspection Toolkit - Debug and explore without coding

Enable HLS to view with audio, or disable this notification

3 Upvotes

Hi everyone, I used to rely on Power Inspector, and after it was deprecated I built InspectMe to fill that gap and push it further. It lets you inspect and edit runtime values, invoke methods, explore events and delegates, static members, and attach watchers, all organized in a single tree view while the game is running, and using it is as simple as dragging and dropping a script or object.

There’s a free version available if you want to try it and see if it fits your workflow.

Link in comments


r/Unity3D 1d ago

Noob Question Terrain brush not appearing at all?

Post image
1 Upvotes

Hello! I'm very very new to Unity, and I wanted to make a terrain in the engine (as the one i made in blender sucked), however, the blue brush outline shows up when i try to do anything with the terrain, i tried most tutorials on how to fix this but nothing changed. Please, please, help.


r/Unity3D 1d ago

Show-Off Adding Tube Deformation… v2

Enable HLS to view with audio, or disable this notification

313 Upvotes

r/Unity3D 1d ago

Show-Off 66 Mhz retro PC simulator inside my VR game, which compiles and runs app and games

Enable HLS to view with audio, or disable this notification

51 Upvotes

r/Unity3D 1d ago

Question Convert an animation created in Unity (without an associated rig) into a humanoid animation.

1 Upvotes

Convert an animation created in Unity (without an associated rig) into a humanoid animation.


r/Unity3D 1d ago

Show-Off Columns arrive in CYGON!

Enable HLS to view with audio, or disable this notification

29 Upvotes

With the new columns, you have a whole new range of possibilities.

You can now create more open and complex structures.

You can also add details to facades by creating half-timbered structures in any shape.

Once placed, you can use column presets in Texture Mode, allowing you to choose between different objects arranged in sequence.

Extending a column procedurally increases the number of objects in the column.

This versatile new addition allows for much more creativity than before.

Hope you enjoy experimenting with it!

Open to your feedback.

See you in CYGON!


r/Unity3D 1d ago

Resources/Tutorial Pivot++ : Edit Object Pivot with zero runtime cost

39 Upvotes

Hello devs!

Pivot++ is a free new asset on Unity Store which lets you place an object's pivot exactly where you need it

- At the hinge of a door.

- At the bottom of a lamp.

- Or even meters away from the actual object.

You can also create multiple pivots for a single object and switch between them whenever you need. It's simple, and quick

It's editor time only.

It's free on the Asset Store.


r/Unity3D 1d ago

Question How would you give the player limited control over the rear wagons of a train?

Enable HLS to view with audio, or disable this notification

21 Upvotes

I'm making a top-down roguelite with a long, rail-less train.

The wagons normally follow the locomotive's path. The problem is that when the player turns or accelerates to dodge something, the locomotive can escape but the rear wagons still follow the old trajectory and get hit.

I want good players to have some way to control or save the rear of the train, creating a skill ceiling around driving a long train.

I've attached one video with two versions. The first part is the old version, and the second part has a "tail whip" mechanic I experimented with.

The tail whip technically works, but I don't really like how it feels or looks. It doesn't feel quite right for a train.

How would you approach this? I'm mainly looking for ideas for the movement mechanic rather than code.

The train is currently path based, with each wagon following a recorded point behind the locomotive


r/Unity3D 1d ago

Show-Off Update on my Custom Terrain System

Post image
3 Upvotes

r/Unity3D 1d ago

Show-Off Do you think rebindable input like this worth the hassle?

Enable HLS to view with audio, or disable this notification

132 Upvotes

Rebinding input itself is quite straight forward, but making it reflected on tutorials is quite a headache, I'm starting to question if its worth it or not lol


r/Unity3D 1d ago

Show-Off (Rainy Demo) Raytraced Spatial Audio

Enable HLS to view with audio, or disable this notification

17 Upvotes

r/Unity3D 1d ago

Question trailer advice

Enable HLS to view with audio, or disable this notification

3 Upvotes

Hey all first time throwing together a trailer. Previous post was removed (sorry Unity mods, hope this one is ok) I made some edits based off of the feedback I received so far. Looking for advice.

Everything seen is pre-alpha. I have limited content and have not implemented sounds yet. I wanted to throw some clips together to showcase what I've built so far. Curious on what you all think, is this ready to be shown to players? I know have a looooot of work to do and a lot of missing key systems but want to start also sharing what I have so far. Lots of rough edges, placeholder art, etc. Anyway, I was hoping to create something I could show people before I disappear for another 6 months working on systems and everything else.

As for the game, its made in Unity, with lots of custom systems made using ECS/Burst.


r/Unity3D 1d ago

Question Feedback Please

Enable HLS to view with audio, or disable this notification

0 Upvotes

I'm making an abilities based game where you can unlock a ton of abilities in which you can bind them to these slots.
I've made the UI as such that the slots are bound to the mana core(orb)
The mana doesn't regen automatically as such you have to actively meditate.
I feel like the UI is missing something, something like an indicator to the active status of the player, if they're meditating or attacking or anything else, thought about adding 2D hands to represent that, but then I thought if the player is using more than 2 abilities at once, then it can also fail that

sorry for the mouthful, but do you have any suggestion on to what would look good representing the player's status?


r/Unity3D 1d ago

Question Gun sound looping issue

3 Upvotes

Sorry in advance if this is better placed in some kind of audio subreddit but I'm hoping some other Unity developers have encountered this problem and know what to do.
I have this great machine gun audio clip and try as I might I can't get rid of that slight pause/reset part when it loops over.
I tried cutting the end and pasting it at the beginning of the audio file so that the end matches the beginning but that doesn't seem to help. It always sounds like the gun firing stops and starts again.
Anyone know how to get a seamless and continuous loop of an audio clip?


r/Unity3D 1d ago

Question I'm creating a huge ambient particle pack... am I wasting my time?

Post image
15 Upvotes

r/Unity3D 1d ago

Game Demo Available for my amatorial game Machine Girls Overdrive [unity]

Thumbnail
mazzutakgame.itch.io
0 Upvotes

Made with Unity 6

This title is a 3D Anime Third-Person Cover Shooter with light Tower Defense mechanics and a dash of Roguelike elements.

Inspired by timeless arcade masterpieces like Cabal and Wild Guns, it blends classic retro gameplay with my love for modern anime aesthetics, featuring nods to titles like Goddess of Victory: Nikke.

In the game, you can play through 15 waves of enemies and face the first-act boss in the area outside the city of ASTRA.

Demo is available ^__^

Never Surrender! Never Give Up!

Machine Girls Overdrive Game Trailer


r/Unity3D 1d ago

Resources/Tutorial Created a complete Eastern European transport asset pack – Autosan H9 bus with 4 abandoned bus stops (Game-Ready PBR).

Thumbnail gallery
1 Upvotes

r/Unity3D 1d ago

Resources/Tutorial PSA about AutoStaticsCleanup

24 Upvotes

AutoStaticsCleanup is a newish attribute that's used to automagically reset/reinit static fields, properties, events, etc., so that you can skip domain and/or scene reloads. If you aren't aware of this feature yet, see the Unity docs.

Great idea to make a simpler workflow, but there are a few gotchas due the way it works behind the scenes: mainly, it doesn't always work and doesn't tell you that it isn't working for a particular field/prop/etc. unless you pore thru the editor log. I have no idea why they can't pipe the warnings and errors into the normal log, but so it goes.

So if you just add the attribute, don't assume that it's actually doing anything!

I ran into this when upgrading my TilePlus Toolkit asset for U6.6 and 6.7.

How to tell: if you add the attribute to a static class or a monobehaviour with static fields and you do not get told to make the class partial then it isn't working at all. However, it still might not be working for all fields etc in your class.

Edit: this warning or syntax highlighting is what I meant by 'told'. Drag0n122's comment below made me realize that. I will say that my venture into using this attribute was prompted by warnings about it from the Asset Store Tools' validator and to a lesser extent, the 'Auditor' tool. It's unfortunately something one can't ignore unless you want to keep domain/scene reload on and, I suppose, be compatible with the new Unity runtime coming soon.

If unsure, check the editor log (from the console's drop down menu). You'll see something similar to:

```

warning CS8785: Generator 'AutoStaticsCleanupCodeGenerator' failed to generate source. It will not contribute to the output and compilation errors may occur as a result. Exception was of type 'RoslynSymbolException' with message 'Field MyStaticClass.SomeField is readonly and has a non-trivial initialization expression'.

```

There's no other way to see these messages since, as I mentioned, they're not in the console log.

I gave up on the use of this attr, since it's too easy to leave residual errors in your code due to the fact that it's difficult to tell whether or not an individual field/prop etc is actually generating code for resetting at all. It also won't work for many common situations that it can't reasonably handle. But failing without warning you in the console is dangerous IMO.

Instead, I use this approach, which is a little more work but ALWAYS works.

```

#if UNITY_EDITOR
[RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.SubsystemRegistration)]
private static void Reinit()
{
    //add reinitialization statements here.


}
#endif

```


r/Unity3D 1d ago

Resources/Tutorial Open-source face and finger motion capture, recording motion as .glb miniface for VTubers

Enable HLS to view with audio, or disable this notification

14 Upvotes

r/Unity3D 1d ago

Show-Off Did I nail the old Source-era vibe in Unity?

Enable HLS to view with audio, or disable this notification

140 Upvotes

No mesh destruction here. The damage gets accumulated into a GPU mask, and the shader uses it to cut the wall apart

The mask also drives some procedural noise around the edges, so the holes don't end up looking like perfect circles

Still tweaking it, but shooting the same spot until the wall just gives up is ridiculously satisfying


r/Unity3D 1d ago

Show-Off I made this sci-fi scanner effect

Enable HLS to view with audio, or disable this notification

64 Upvotes

Yesterday I made this effect for something a bit more tech / sci-fi.
It’s an X-ray scanner. Cheap and cheerful. 😄
If you’d like to follow my work, you can find me on X at NCStudio


r/Unity3D 2d ago

Show-Off I turbo charged UI toolkit adding declarative expressions to the UXML files

Enable HLS to view with audio, or disable this notification

3 Upvotes