{"id":20314315,"url":"https://github.com/normandy72/tilevania","last_synced_at":"2026-05-12T09:32:37.997Z","repository":{"id":153902839,"uuid":"589302323","full_name":"Normandy72/TileVania","owner":"Normandy72","description":"A \"TileVania\" game. Complete C# Unity Game Developer 2D.","archived":false,"fork":false,"pushed_at":"2023-01-21T22:34:51.000Z","size":1924,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-04T08:44:54.112Z","etag":null,"topics":["csharp","csharp-code","game","gamedev","gamedevelopment","unity","unity2d","unity2d-game"],"latest_commit_sha":null,"homepage":"","language":"ShaderLab","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Normandy72.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-15T18:27:54.000Z","updated_at":"2023-01-21T22:12:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"015dd9ae-098c-471b-99b7-6a20e7796ba5","html_url":"https://github.com/Normandy72/TileVania","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Normandy72/TileVania","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Normandy72%2FTileVania","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Normandy72%2FTileVania/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Normandy72%2FTileVania/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Normandy72%2FTileVania/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Normandy72","download_url":"https://codeload.github.com/Normandy72/TileVania/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Normandy72%2FTileVania/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32932384,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-12T09:19:52.626Z","status":"ssl_error","status_checked_at":"2026-05-12T09:17:33.438Z","response_time":102,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","csharp-code","game","gamedev","gamedevelopment","unity","unity2d","unity2d-game"],"created_at":"2024-11-14T18:14:48.629Z","updated_at":"2026-05-12T09:32:37.981Z","avatar_url":"https://github.com/Normandy72.png","language":"ShaderLab","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ~ Unity ~\n## Animation\n* __Animator Component__ - assigns animations to GameObjects through an Animator Controller.\n* __Animator Controller__ - arrangement of animations and transitions (state machine).\n* __Animation__ - specific pieces of motion.\n* __Sprite Renderer__ - displays the 2D sprite on screen.\n\n#### Steps to set up character's idle:\n1. import spritesheet and slice;\n2. add sprite renderer to Player;\n3. create idle animation clip;\n4. create Character Animation Controller;\n5. add idle animation to Animator Controller;\n6. add Animator to Player;\n7. assign Character Animator Controller to Player.\n\n## Prefabs\n* Prefabs are game objects which we have turned into reusable templates.\n* The original template is called the __Prefab__ and the copies we add into our scene are called __Instances__.\n* Turning a game object into a prefab means we can easily load into any scene in our game.\n## Flippin' Logic\n* If the player is pushing right, the velocity will be positive. If left, then negative.\n* If movement right, we should face right. If left, face left.\n* We can change the facing direction (right or left) by changing the localscale using +ve or -ve value.\n* Only change facing direction if moving, so weird things don't happen when velocity is zero.\n## Layers\n* Layers are useful if we have the same functionality across multiple GameObjects. E.g. ignored by camera, not clickable, collision check.\n* To stop jumping anytime we use `Collider2D.IsTouchingLayers()`.\n\n#### Collider2D.IsTouchingLayers()\n* Checks whether this collider is touching any colliders on the specified layerMask or not.\n* Returns __bool__.\n\n#### LayerMask.GetMask()\n* Given a set of layer names as defined by either a Builtin or a User Layer in the Tags and Layers manager, returns the equivalent layer mask for all of them.\n* Returns __int__ (the layer mask created from the layerNames).\n\n***\n# ~ C# ~\n## Mathf.Sign\n* `Mathf.Sign(float f);`\n* Returns the sign of f.\n* Return value is 1 when f is positive or zero, -1 when f is negative.\n\n## Mathf.Abs\n* `Mathf.Abs(float f);`\n* Returns the absolute value of f.\n\n## Mathf.Epsilon\n* A tiny floating point value (Read Only).\n* The smallest value that a float can have different from zero.\n* With the following rules:\n    * anyValue + Epsilon = anyValue\n    * anyValue - Epsilon = anyValue\n    * 0 + Epsilon = Epsilon\n    * 0 - Epsilon = -Epsilon\n* A value Between any number and Epsilon will result in an arbitrary number due to truncating errors.\n\n## Coroutines\n* Coroutines are another way for us to create a delay in our game.\n* The core concept to understand is that we start a process (ie. Start Coroutine) and then go off and do other things (ie. Yield) until our condition (eg. we've waited 2 seconds) is met.\n#### Coroutines Code\nWe call:\n`StartCoroutine(NameOfMethod());`\n\nOur method:\n```\nIEnumerator NameOfMethod()\n{\n    yield return new WaitForSecondsRealtime(time);\n\n    // Anything you want to do after waiting\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnormandy72%2Ftilevania","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnormandy72%2Ftilevania","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnormandy72%2Ftilevania/lists"}