Guide for Unity Addressable Asset System.
Check out this sample code repo.
This guide supports languages below.
Created: 2020-07-03
Last updated: 2020-08-26 minor typo correction
| // Drawing a line with UITK https://forum.unity.com/threads/drawing-a-line-with-uitk.1193470/ | |
| public class LineDrawer : VisualElement | |
| { | |
| private Vector3 startPos, endPos; | |
| private float thickness; | |
| public LineDrawer(Vector3 pos1, Vector3 pos2, float width) | |
| { | |
| startPos = pos1; | |
| endPos = pos2; |
| public static class ExtensionMethods | |
| { | |
| public static TaskAwaiter GetAwaiter(this AsyncOperation asyncOp) | |
| { | |
| var tcs = new TaskCompletionSource<object>(); | |
| asyncOp.completed += obj => { tcs.SetResult(null); }; | |
| return ((Task)tcs.Task).GetAwaiter(); | |
| } | |
| } |
Guide for Unity Addressable Asset System.
Check out this sample code repo.
This guide supports languages below.
Created: 2020-07-03
Last updated: 2020-08-26 minor typo correction
WARNING: Article moved to separate repo to allow users contributions: https://github.com/raysan5/custom_game_engines
A couple of weeks ago I played (and finished) A Plague Tale, a game by Asobo Studio. I was really captivated by the game, not only by the beautiful graphics but also by the story and the locations in the game. I decided to investigate a bit about the game tech and I was surprised to see it was developed with a custom engine by a relatively small studio. I know there are some companies using custom engines but it's very difficult to find a detailed market study with that kind of information curated and updated. So this article.
Nowadays lots of companies choose engines like [Unreal](https:
| using UnityEngine; | |
| public class MeshBlit : MonoBehaviour | |
| { | |
| public RenderTexture rt; | |
| public Mesh mesh; | |
| public Material material; | |
| public Vector3 meshPosition = new Vector3(0.5f, 0.5f, -1); |
| # Sourcecode | |
| *.txt diff | |
| *.cs diff | |
| *.json diff | |
| *.meta diff | |
| *.xml diff | |
| # 3D models | |
| *.3dm filter=lfs diff=lfs merge=lfs -text | |
| *.3ds filter=lfs diff=lfs merge=lfs -text | |
| *.blend filter=lfs diff=lfs merge=lfs -text |
| !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890〜¡¢£¤¥¦§¨©ª«¬ ®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ‒–—―‖‗‘’‚‛“”„‟†‡•… ‰′″‴‹›‼‾⁄⁞€™□ 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/◆□■△▲▽▼※〒→←↑↓〓∈∋⊆⊇⊂⊃アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォッャュョーガギグゲゴザジズゼゾダヂヅデドバビブベボパピプペポヴぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞたァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭ─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐 |
| // ported from: https://gist.github.com/noonat/847106 | |
| import hxd.Timer; | |
| import h3d.Buffer; | |
| import h3d.Engine; | |
| import h3d.Indexes; | |
| import h3d.Vector; | |
| import h3d.mat.BlendMode; | |
| import h3d.mat.Data.Compare; | |
| import h3d.mat.Data.Face; |
| "The common wisdom of "don't use conditionals in shaders" is one of my biggest frustrations with how shaders are taught. | |
| step(y, x) _is_ a conditional! It compiles to identical code as: | |
| float val = (x >= y ? 1.0 : 0.0) | |
| or | |
| float val = 0.0; | |
| if (x >= y) val = 1.0;" | |
| https://twitter.com/bgolus/status/1235254923819802626 | |
| // Performing shader divisions without diving *rcp = approximation of 1/x | |
| float myDividedVal = myValToDivide * rcp(myDivider); |
| class Main { | |
| macro static function swap(a, b) { | |
| return macro { var v = $a; $a = $b; $b = v; }; | |
| } | |
| static function main() { | |
| var i = 10, j = 15; | |
| trace(i, j); // 10, 15 | |
| swap(i, j); | |
| trace(i, j); // 15, 10 | |
| } |