Unity + Twitch Chat Integration
2:32:10
Unity Tutorial: Making a Mini-Golf Game!
2:30:08
Пікірлер
@visamalog
@visamalog 23 сағат бұрын
10:00 I was wondering if the dictionary would with with a Vector2 as a key, I mean for the case of this tutorial
@x3axDev
@x3axDev 27 күн бұрын
It has already been 10 years. Wow, time moves fast!
@phillpearson7694
@phillpearson7694 Ай бұрын
What happened to this series?
@kraisk
@kraisk Ай бұрын
The most confusing part for me is: how do you draw a 150x150 grid where each tile basically has dimensions of 1x1, but it still renders correctly? You don’t specify the width and height for a tile, and the tile image certainly isn’t 1x1 px. How does it even work? Kudos for this series, though! Even though it’s 8 years old, the principles and ideas remain the same, and it’s easy to follow.
@banana_cabana
@banana_cabana Ай бұрын
I love Asteroids!
@banana_cabana
@banana_cabana Ай бұрын
Just like in beginning physics class, we'll assume it's a spherical spaceship on a frictionless plane :D
@qzlocxx
@qzlocxx Ай бұрын
By the way, for my implementation, I used a Dictionary<(int, int), GameObject> to store each gameobject associated with each tile. Here's my implementation: using System; using System.Collections.Generic; using UnityEngine; public class WorldController : MonoBehaviour { [SerializeField] private World _world; private Dictionary<(int, int), GameObject> _tileGameObjects = new Dictionary<(int, int), GameObject>(); private float _countdownTime = 2f; private float _timer; private void Awake() { _timer = _countdownTime; LoopThroughTiles((x, y) => { Tile tile = _world.Tiles[x, y]; string tileName = tile.Name; Type[] tileComponents = new Type[] { typeof(SpriteRenderer) }; GameObject tileGameObject = new GameObject(tileName, tileComponents); tileGameObject.tag = "Tile"; Transform tileTransform = tileGameObject.GetComponent<Transform>(); SpriteRenderer tileSpriteRenderer = tileGameObject.GetComponent<SpriteRenderer>(); tileTransform.position = new Vector2(tile.XPosition, tile.YPosition); tileSpriteRenderer.sprite = tile.Sprite; _tileGameObjects[(x, y)] = tileGameObject; }); Debug.Log($"Successfully initialized a world with {_world.Area} tiles."); } void Update() { if (_timer > 0f) { _timer -= Time.deltaTime; } else { Debug.Log("Countdown finished, restarting now..."); LoopThroughTiles((x, y) => { Tile tile = _world.Tiles[x, y]; _world.RandomizeTileSprite(tile); GameObject tileGameObject = _tileGameObjects[(x, y)]; tileGameObject.GetComponent<SpriteRenderer>().sprite = tile.Sprite; }); _timer = _countdownTime; } } private void LoopThroughTiles(Action<int, int> action) { for (int x = 0; x < _world.Width; x++) { for (int y = 0; y < _world.Height; y++) { action?.Invoke(x, y); } } } }
@lucienbrandt111
@lucienbrandt111 Ай бұрын
I completed it. But cant save and load my creation
@lucienbrandt111
@lucienbrandt111 Ай бұрын
How to save and load creations?
@matekovacs207
@matekovacs207 Ай бұрын
this video is 9 years old and still a mood.
@ruijin6503
@ruijin6503 Ай бұрын
Hey Quill, I've learned so much from your videos. I'm wondering if you could make tutorial videos for State Machine and Behavior Tree in Unity?
@AlexandraDeBerg
@AlexandraDeBerg Ай бұрын
OOOOOYYYYYY BABYYYYY LOOOK AT DAT! XDDDD
@ruijin6503
@ruijin6503 2 ай бұрын
put nextTile = pathAStar.DequeueNextTile(); above DestTile = pathAStar.EndTile(); would be the easiest way to fix it I guess
@LogicalPhalluses
@LogicalPhalluses 2 ай бұрын
This video is so scuffed it ruins the whole series. At the point you say "me from the past is about to make a tiny mistake", you had already made the mistake, which was cutting out a bunch of the process that would, I assume, be required for this code to function.
@ruijin6503
@ruijin6503 2 ай бұрын
How can I set dragStartPosition to null? when the mouse cursor move to menu the preview will stay, if I re-select any menu, the moment my mouse moves out from menu, the preview will show from the last dragStartPosition. I know it is because the dragStartPosition has not been cleared, but I cannot set Vector3 to null in C#
@johnnilson9039
@johnnilson9039 2 ай бұрын
Can this approach work on a Unity terrain?
@ruijin6503
@ruijin6503 2 ай бұрын
curr.X-dX is neighborX
@gamersresidence6040
@gamersresidence6040 3 ай бұрын
Thanks, this is pretty cool :)
@rocketfallen
@rocketfallen 3 ай бұрын
Hey Quill, forever later: With what's happened to the LD archives this is no longer accessible, and I don't see the project in the quill tutorials link. If you see this, I'd love if you could consider putting it up somewhere to play/look at the project still, I remember having tons of fun with this when you first made it back in the day.
@mlglegend9263
@mlglegend9263 3 ай бұрын
Crazy how this tutorial has 10 years already, still taking notes, tysm quill!
@cimaaaaaaa
@cimaaaaaaa 3 ай бұрын
i miss the fact that you dont need to recmopile after every change
@roberteltze4850
@roberteltze4850 4 ай бұрын
I just looked up unity and board games and was pleasantly surprised to find one made by a creator I often watch.
@Tjoldar
@Tjoldar 4 ай бұрын
Still great!
@Tjoldar
@Tjoldar 4 ай бұрын
Your way of explaing things is awesome. Thanks 🙏
@Tjoldar
@Tjoldar 4 ай бұрын
Wow! This is so great for a beginner. Thumbs up for an 11 year old tutorial 👍
@Lavxa
@Lavxa 4 ай бұрын
Hi is it too late to ask for an update
@TheMrgrafixable
@TheMrgrafixable 4 ай бұрын
Weird. angular_velocity = 0 is getting the error: Cannot assign a value of type "int" as "Vector3".
@banana_cabana
@banana_cabana Ай бұрын
You are using a 3D physics object which has a 3D vector (with three values) to track its rotation in 3D space. The 2D version Quill is using makes use of a floating point value.
@brollerchannel819
@brollerchannel819 4 ай бұрын
10 years ago... still useful. Thanks bud!
@jwnz2680
@jwnz2680 4 ай бұрын
This doesn't quite work for a golf hole since a fast moving object will hit the trigger collider and the ground in the same fixedupdate, causing the ball to bounce off the ground before the trigger collider has a chance to turn off the collision. Depending on which direction the ball is moving, this has different results, but all of them basically boil down to "unexpected physics interaction". It's unfortunate there's no hook for something like OnBeforeCollision
@Dean-rs2nt
@Dean-rs2nt 4 ай бұрын
Ugh.. quill seriously needs to keep track and put things in playlist... all these loose vids
@Dean-rs2nt
@Dean-rs2nt 4 ай бұрын
I really want to see this continued.. quill hasnt really done anything on this channel in a long time but thisni wanted to see a complete series on.
@casperstour
@casperstour 5 ай бұрын
No complete project download on website? Shame really wanted to use this. I guess i need do it all myself lmao
@Rajdadaj
@Rajdadaj 5 ай бұрын
This is 7 years old now, but man is it good. I'll have to watch all of it.
@WebNut99
@WebNut99 5 ай бұрын
Loving the series and system been following along. Maybe a little late but I checked the later files and seems like it never got addressed. For anyone who followed along until this point and is still getting the "Character being told about a job that isn't theirs" error/warning. This comes from the Character requeuing the job when it is deemed unworkable, the Character calls AbandonJob which requeues but never unregisters the JobStoppedCallback. So I added "myJob.UnregisterJobStoppedCallback(OnJobStopped);" to the Character::AbandonJob() function to remove this error. Hope this helps anyone out in 2024 or later lol.
@marcelinio9988
@marcelinio9988 5 ай бұрын
hey quill I really liked this game unfortunately I have recently tried to download it again I found nowhere where I can do so can you help out?
@pawegorka8589
@pawegorka8589 5 ай бұрын
That's what i was using without understanding for too long, finally someone can explain it, thanks you sooo much 😊
@pixelbender896
@pixelbender896 6 ай бұрын
quill, are you still coding in c# for rimworld?
@gregmumbai333
@gregmumbai333 6 ай бұрын
Not sure why but when I was messing with the getters and setters it was producing stack overflow errrors. I was sure I had the same code. In the end I had to use setting functions as a workaround. Not sure if anyone still reads these comments and might know what was going on.
@DrAmgadSquires
@DrAmgadSquires 6 ай бұрын
Quill's tutorials are among the best. It's so smooth and organized, it makes me curious how much preparation/scripting happens before actually recording a video.
@BeerHuntor
@BeerHuntor 6 ай бұрын
Any idea on any further tutorials, videos featuring godot? Or any development in general. I used to love watching your somewhat semi regular videos on the subject. Would really appreciate further series with godot as I have myself just picked up the engine
@DraculaSWBF2
@DraculaSWBF2 7 ай бұрын
Wpw! This brings back memories.
@alyssamaesuyum1221
@alyssamaesuyum1221 7 ай бұрын
How about if quaternion does not exist ? What should i change ?
@Venky.Arisko
@Venky.Arisko 7 ай бұрын
how to fix if ship rotate, background rotate too?
@yjs7090
@yjs7090 7 ай бұрын
Hello, how to enable the XYZ arrows on the top right of the Scene box when toggle 2D? When I go to 3D, those arrows weren't there. Please help.
@DanialDawson
@DanialDawson 7 ай бұрын
Incredible tutorial! I love that you're starting at the lower level and we can follow along. Learning at lightning speed :)
@88phatx
@88phatx 7 ай бұрын
Love this series, help me learned a lot.
@jackkfinnn4025
@jackkfinnn4025 8 ай бұрын
The cards exist will block raycast so i must release new card in the empty space to move them successfully between two panels.How to fix that ?
@jackkfinnn4025
@jackkfinnn4025 8 ай бұрын
just in case some people has the same problem,I did this in function OnBeginDrag to solve the problem: CardList = GameObject.FindObjectsOfType<DragAndDrop>(); foreach (var Card in CardList) { Card.GetComponent<CanvasGroup>().blocksRaycasts = false; } to repalce this line: //GetComponent<CanvasGroup>().blocksRaycasts = false; (remember do the samething in OnEndDrag)
@sunnysun7105
@sunnysun7105 8 ай бұрын
Thank you for this tutorial, really help to get start with my unity project
@Retro-Future-Land
@Retro-Future-Land 8 ай бұрын
Can this work on the 2D version of Unity game creation? Or is it specific to the 3D one?
@Steev42
@Steev42 9 ай бұрын
Now that I've watched all of these, a couple of things that I suggest. First, one of my favorite features in Godot is the "unique name" for a node/scene within a scene. That gives it a name that can be accessed directly from the parent no matter how you access the parent or how many levels down the hierarchy it might be (or where it might move). I think this is better than your method of accessing via @export vars. Secondly, to eliminate connections (such as between your main and your ui), a class that isn't necessarily attached to an object that defines all the signals that need to be used is incredibly helpful.