List of freely available resources to study computer graphics programming.
| public interface ITimeProvider | |
| { | |
| float renderDeltaTime { get; } | |
| float fixedDeltaTime { get; } //ideally, do not include this, and use Time.fixedDeltaTime always | |
| float renderTime { get; } | |
| float fixedTime { get; } | |
| } | |
| public class TimeProvider : MonoBehavior | |
| { |
Note: I have moved this list to a proper repository. I'll leave this gist up, but it won't be updated. To submit an idea, open a PR on the repo.
Note that I have not tried all of these personally, and cannot and do not vouch for all of the tools listed here. In most cases, the descriptions here are copied directly from their code repos. Some may have been abandoned. Investigate before installing/using.
The ones I use regularly include: bat, dust, fd, fend, hyperfine, miniserve, ripgrep, just, cargo-audit and cargo-wipe.
Drop ThroughPropertyAttribute.cs anywhere in Assets.
Drop ThroughPropertyDrawer.cs anywhere inside an Editor folder in Assets.
Attach Test to a gameobject to make sure it works. See the code in Test for an example.
Features:
- Displays field as readonly if setter is missing.
- Works with non-public getter/setters.
| using UnityEngine; | |
| namespace Utility | |
| { | |
| public class DisplayAsEulerAttribute : PropertyAttribute | |
| { | |
| public float min; | |
| public float max; | |
| public DisplayAsEulerAttribute(float min = 0, float max = 359.9999f) |
| /* | |
| * Author: Harshdeep Singh, https://github.com/h-sigma | |
| * Year: 2020 | |
| * Description: An attribute for MonoBehaviour's that restricts assigning in the editor to MB's deriving from a specific interface. | |
| * Use: | |
| * [Interface(typeof<IHealth>)] | |
| * public MonoBehaviour health; | |
| * Note: This hasn't been bug tested, and it is a very simplistic way to do the job. If required or requested, I may choose to improve it. | |
| */ |
Code is clean if it can be understood easily – by everyone on the team. Clean code can be read and enhanced by a developer other than its original author. With understandability comes readability, changeability, extensibility and maintainability.
- Follow standard conventions.
- Keep it simple stupid. Simpler is always better. Reduce complexity as much as possible.
- Boy scout rule. Leave the campground cleaner than you found it.
- Always find root cause. Always look for the root cause of a problem.
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.