Тёмный
Wilmer Lin GA School
Wilmer Lin GA School
Wilmer Lin GA School
Подписаться
Welcome to GameAcademy.school. Here we cover all things about Game Development, focusing on Unity and C#.

Check out the official Web site:
gameacademy.school

Many of the videos on this channels are snippets or supplements for our premium courses on Udemy. These links have discount codes included:
gameacademy.school/portfolio/
Shader Graph Forcefield: Update
8:46
3 года назад
DOTS Gameplay: Collision Events
18:21
4 года назад
DOTS Gameplay: Trigger Events
25:02
4 года назад
DOTS Gameplay: EntityQuery
15:31
4 года назад
DOTS Gameplay: ComponentDataFromEntity
18:54
4 года назад
DOTS GamePlay: Tags
19:09
4 года назад
Unity Asset Store: Spring 2020
9:32
4 года назад
Unity DOTS: System Base
12:47
4 года назад
Unity DOTS: C# Job System
19:47
4 года назад
Unity DOTS: Components And Systems
18:50
4 года назад
Unity DOTS: Conversion Workflow
15:55
4 года назад
Unity DOTS: Creating an Entity
15:59
4 года назад
Unity DOTS: Comparing performance
4:29
4 года назад
UnityDeviceSimulator
5:16
4 года назад
UNITY Measured Materials Library
7:25
5 лет назад
UNITY FPS SAMPLE  Quick start guide
13:12
5 лет назад
Комментарии
@yoyomario
@yoyomario 4 месяца назад
I'm sorry but this isn't a valid performance comparison. You've attached the Movement.cs component to each prefab, resulting in each GameObject having Update called on it. This is heavy stuff. Instead, you should have called "e.g. Move()" inside a single update for all 15k instantiated GameObject, you would get almost the same performance. The secret behind main reason ECS performs better is the architecture, the part you haven't mentioned, ECS (DOTS) uses array of structures, which are grouped inside memory and are accesses faster (this would happen as well if you had a single Manager calling Move() on array of your objects). Additionally, 150k cubes for ECS also seems kinda low count to keep it at 30fps - it seems that your bottleneck is your GPU (I see you're running a MacBook of some kind which would explain bottling at 150k cubes).
@is378375
@is378375 8 месяцев назад
How would it be setup with two (or more) attractors?
@xddude
@xddude 9 месяцев назад
Super helpful series man. I appreciate you making this.
@jakubstaniszewski304
@jakubstaniszewski304 9 месяцев назад
How to make an oscillation frequency dependent on a position? Let's say I am working on waves, and instead of electricity there is foam, and make fome bigger depenging on height of wave?
@xddude
@xddude 9 месяцев назад
Everything else would just be basic on trigger enter and comparing transform position stuff.
@ageofblood4997
@ageofblood4997 10 месяцев назад
i used this tutorial to shoot fvx arrow to target, it works but it need more details like maybe add little arc depending on target distance and arrow rotation must be follow that arc up and down, keep in mind target maybe moving... can you do that tutorial? it will be awesome. thanks.
@SVAFnemesis
@SVAFnemesis Год назад
tutorial starts at 4:33
@imzary
@imzary Год назад
Hey I was wondering is there a way to make this shader work in 2D? I know it's a bit odd but I've not managed to find any sources online with a shader for a force field like this but in 2D
@karimoh3154
@karimoh3154 Год назад
great tip thx!
@xKeray
@xKeray Год назад
fuck unity
@Arkaen-AI
@Arkaen-AI Год назад
This looks like a great educational project/resource. I'm training new C#/Unity engineers right now, as I am simultaneously learning DOTS-style programming! I've been developing engines and games for well over a decade, but DOTS/ECS is new technology to me too! However, it makes a whole _lot_ of sense to me, and I am really starting to love the concepts and the elegance and scalability of it! Thanks so much, I plan on making some videos on the new 1.0.8 package releases! I've already got a 3D spaceship flight sim prototype underway :D 💞
@fffrain5513
@fffrain5513 Год назад
Great tutorial! Why my parameters are only whole number? I can't have decimal?
@chah1653
@chah1653 Год назад
Why we are subtracting in local space instead of world space?
@filipexavier8750
@filipexavier8750 Год назад
i'm trying to make a transition from a phosphorus texture to a burnt texture, so i used the remap and the rest i did exactly as it is in the video to make the transition on the y axis... it worked in preview, but when i open my scene in unity my slide (Origen) doesn't work and it keeps in burnt texture state, I don't know if it's my node position or something else
@pu55yEaterr
@pu55yEaterr Год назад
5:57 for those who still doesn't understand how multiplying two textures creates that small band, i think it is like this: each color is stored as rgb value from 0 -> 1, so black will have an rgb of 0,0,0 ; while White will be 1,1,1. Multiply each r,g,b of each color together and you get the final result. That means white * black = black, because any number multiplied by 0 is 0.
@pu55yEaterr
@pu55yEaterr Год назад
2:40 you can also double click the name of the window to maximize it
@nikhilvardhantawania4591
@nikhilvardhantawania4591 Год назад
even if you search something on the YT related to shader graph you will not see this video most probably, I didn't get this in my search result. Only few of the ones pops up. Real gems are hidden
@xavisanchezgimenez7517
@xavisanchezgimenez7517 Год назад
where is the tutorial about this part?
@Salmontres
@Salmontres Год назад
Thank you for putting these together! I didn't really see anyone teaching SubGraphs (including the Unity Learn site). You just got a sub!
@abuzzakasm9767
@abuzzakasm9767 Год назад
can you make a video on massive city environment optimization?
@madbeatstu
@madbeatstu Год назад
Helpful, easy to miss the origin offset when trying at first and you think it doesn't work but its just not in range. Thanks
@Luciferdelight
@Luciferdelight Год назад
Thnx , subscribed!
@robob5544
@robob5544 Год назад
Hey please do more of these asset store stuff 2022 version
@rabago91
@rabago91 Год назад
Thanks man!
@Litefeather_
@Litefeather_ Год назад
How can I make it only pulsate out?
@ws4535
@ws4535 Год назад
very nice video! thank you!
@erenkaraymir8799
@erenkaraymir8799 Год назад
Hi i need upgrade score text every collision detected. can you help me?
@north6935
@north6935 Год назад
The equivalent to a sub graph in Unity would be material functions in Unreal. In Unreal's Material graph there is a SetMaterialAttributes node that allows you to tidy things up a bit more when referencing in the main shader graph. When doing this, all of the Color, Normal, Roughness, Metallic and AO information gets condensed into a simple 'Material Attributes' output so that you don't have spaghetti mess going forward. Is there any functionality like this in Unity or am I going to have to do a Custom Function? :( I'm setting up a shader for a school project, time is of the essence and don't want to spend it learning how to code if I don't have to lol
@dacifdaj
@dacifdaj Год назад
by this path it's duplicating convert IconversionGameObject
@overlystupid7029
@overlystupid7029 Год назад
this is the best teacher after brackeys went away
@emptybruh
@emptybruh Год назад
Could you make a prefab and spawn that instead of putting material and mesh in a spawner?
@xarshe
@xarshe Год назад
Great explanations, easy to follow - thank you! Easy subscribe - will check out some of your other content :)
@MrJent007
@MrJent007 Год назад
How can I offset this Sine curve randomly ? Thx for the tutorial !
@omgawesomeomg
@omgawesomeomg Год назад
I think the Translation component in the FaceDirectionSystem is not needed. I don't know if you still make videos, it's been a year since your last one, but I would love more DOTS content, especially since its changing so rapidly. I went through many videos, articles and documentation and your videos are the best thing I've come across regarding DOTS.
@omgawesomeomg
@omgawesomeomg Год назад
Is there any reason to Jobify a System when running it on the main thread with .Run() ? There wouldn't be any performance benefit, right?
@DmitriNanaktaev
@DmitriNanaktaev Год назад
Awesome! Keep doing what you are doing.
@qin6409
@qin6409 Год назад
Thank you, Willmer, even though I am using ECS0.51, most of the cases are the same, your classes are very attractive, and I can learn your video for whole days, wait for your new courses. I will recommend your videos to others too!
@qin6409
@qin6409 Год назад
Entity0.51 doesn't have JobComponentSystem anymore, that part might need change: [UpdateAfter(typeof(EndFramePhysicsSystem))] public partial class PickOnTriggerSystem : SystemBase { private BuildPhysicsWorld buildPhysicsWorld; private StepPhysicsWorld stepPhysicsWorld; protected override void OnCreate() { buildPhysicsWorld = World.GetOrCreateSystem<BuildPhysicsWorld>(); stepPhysicsWorld = World.GetOrCreateSystem<StepPhysicsWorld>(); } // [BurstCompile] struct PickupOnTriggerSystemJob : ITriggerEventsJob { [ReadOnly] public ComponentDataFromEntity<PickupTag> allPickups; [ReadOnly] public ComponentDataFromEntity<PlayerTag> allPlayers; public void Execute(TriggerEvent triggerEvent) { Entity entityA = triggerEvent.EntityA; Entity entityB = triggerEvent.EntityB; if (allPickups.HasComponent(entityA) && allPlayers.HasComponent(entityB)) { UnityEngine.Debug.Log("This:" + entityA + " Other:" + entityB); return; } if (allPickups.HasComponent(entityA) && allPlayers.HasComponent(entityB)) { UnityEngine.Debug.Log("Pickup Entity A:" + entityA + " collided with player Entity B:" + entityB); } else if (allPickups.HasComponent(entityA) && allPlayers.HasComponent(entityB)) { UnityEngine.Debug.Log("player Entity A:" + entityA + " collided with Pickup Entity B:" + entityB); } } } protected override void OnUpdate() { PickupOnTriggerSystemJob triggerJob = new PickupOnTriggerSystemJob() { allPickups = GetComponentDataFromEntity<PickupTag>(true), allPlayers = GetComponentDataFromEntity<PlayerTag>(true) }; Dependency = triggerJob.Schedule(stepPhysicsWorld.Simulation, Dependency); } }
@nhatlinhtran3575
@nhatlinhtran3575 Год назад
thank you pretty much for this
@qin6409
@qin6409 Год назад
FaceDirection has to be implemented in TargetToDirectionSystem in Entity0.51, or the issue looks like delayed FaceDirection called on Chaser
@qin6409
@qin6409 Год назад
WithAll<AsteroidTag, ChaserTag>() doesn't work in Entity0.51 anymore, but it is ok to create 2 Entities jobs.
@qin6409
@qin6409 Год назад
amazing tutorial, I can't believe I spent a lot of time struggling on ECS from youtube for a long time.
@qin6409
@qin6409 Год назад
please let me know if you have more VFX courses, I absolutely will buy them. I bought your light course which was amazing
@qin6409
@qin6409 Год назад
I am really surprised why so good teacher has so less subscribers, it is even more clear than Unity official
@TakeshiKovacs101
@TakeshiKovacs101 2 года назад
In Unity editor the "Physics Shape" component has no more a checkbox for "IS TRIGGER", you have to select from the dropdown "Collision Response" the option "Raise Trigger Events". And that's all!
@bovineox1111
@bovineox1111 2 года назад
I don't understand why you ended up with two entities? One appeared to be auto converted the other generated by the script. Where did the former come from? Did the prefab just get converted and added to the scene?? That would be odd. I'll go back and re-watch...
@bovineox1111
@bovineox1111 2 года назад
I'll code it up and check, but I am guessing we get an entity from the prefab but this is not visibile in the scene?
@qin6409
@qin6409 2 года назад
thank you, I bought your courses even though I really don't need them, I just want to support you're made so good and easy understanding video! saved my a lot of time for DOTS learning
@qin6409
@qin6409 2 года назад
please let me know how to tip you, I searched a lot of videos which were totally wasting my time, this video is best video!
@qin6409
@qin6409 2 года назад
believe me, I searced the whole youtube and including bilibili, this is easiest and clearest video. If there has tip functions, I absolutely will tip this professor
@tbunreall
@tbunreall 2 года назад
outdated already
@kennysrael2288
@kennysrael2288 2 года назад
6:45
@robertkasper9890
@robertkasper9890 2 года назад
I love this tutorial! Great work. PSA for anyone using URP or HDRP, you'll need to use the RenderMeshUtility instead of AddSharedComponentData to add your rendering data: RenderMeshUtility.AddComponents(myEntity, entityManager, new RenderMeshDescription(unitMesh, unitMaterial));
@emilpolak1170
@emilpolak1170 Год назад
I was looking for this very answer on every possible forum about ECS in Unity, but unsuccessfully. You saved me stranger, thank you!
@hellsbuster
@hellsbuster Год назад
This comment needs to be GOATed.
@MikeCroswell
@MikeCroswell Год назад
@@hellsbuster RIght. One of the greatest videos and useful follow-up post!