Instantiate offset - Snake game
Hello there all,
I am really hoping someone out there can help me with a problem I've been grinding my face against for hours.
To preface this my coding experience is actually zero so there are probably plenty of inefficiencies and stupid things in my code but for the scope of what I'm trying to do, It shouldn't matter.
Now, on to the problem at hand:
I have all the workings of a good snake game, I have pickups that increase speed and add an instance of a "tailprefab" which is basically just a green circle, the first instance spawns at the players transform.position which isn't ideal but is passable.
For each subsequent tailprefab, it takes the position of the last prefab and makes that the new transform.position and this pretty much works as intended. However, the tailprefabs are clipping into each other and as such I need to figure out a way to make an offset so that this doesn't happen - picture included shows the issue
If It is useful, the exact size of the tailprefab is 22 x 22 pixels. Here is the code I currently use for adding the tailprefab (I followed an online tutorial but they were under the presumption that all objects were 1 pixel big)
void Move() {
Vector3 v = transform.position;
transform.Translate (dir);
if (ate) {
GameObject g = (GameObject)Instantiate (tailPrefab, v, Quaternion.identity);
taillist.Insert (0, g.transform);
ate = false;
}
else if (taillist.Count > 0) {
taillist.Last ().position = v;
taillist.Insert(0, taillist.Last());
taillist.RemoveAt(taillist.Count-1);
}
}
}
I know this is probably something that should have taken someone with some skill about 3 seconds to resolve but I've been trying to fix it for six or seven hours now and I felt like it was time to ask for some help.
Any and all help is appreciated
Thank you very much,
Joey