Hi,
Rather than to define my own, I am wondering if their is a push_front method defined somewhere in a template that I can easily use.
using a stack provides pop and push, using a queue provides enqueue and deuque using a List provides Remove and Add. I have also looked in a LinkedList and LinkedListNode. I need to use PushFront for each GUI Text written to the screen.
Particles Collided! <--Enqueue
ParticlesCollidedTwice! <--- PushFront
ParticlesCollided!
ParticlesCollidedThrice! <--PushFront newest
ParticlesCollidedTwice! <–PushFront oldest
ParticlesCollided!
Edit: Here a snippet:
//Enter this method each time we want to display a new message
public void AddNewMessage(string myMessage /*,Vector4 pos*/)
{
GUIStyle myStyle;
Vector4 Position;
Color myColor = Color.red;
Messages m = new Messages(myMessage, new Vector4(475,lowPoint,1000,2000), myColor);
if (count < 3)
{
MessageList.Add(m);
lowPoint = lowPoint + 10;
count++;
}
else
{
foreach (Messages ms in MessageList)
{
// I just went ahead and tried to progress by emulating a push front.
if (ms.Position.y == lowPoint-myVar)
{
MessageList.Remove(ms);
Messages msg = new Messages(myMessage, new Vector4(475, lowPoint-myVar,1000,2000), myColor);
MessageList.Add(msg);
newCount++;
break;
}
if (newCount < 3)
{
lowPoint = 500;
count = 0;
}
}
myVar = myVar + 10;
}
}
public class Messages
{
//...format the message..
public Messages(string msg, Vector4 pos, Color txtColor/*, Font txtFont*/)
{
// Format the message
newMessage = msg;
Position = pos;
myColor = txtColor;
}
public void Draw()
{
GUI.Label(new Rect(Position.x, Position.y, Position.z, Position.w), newMessage);
}
}
void OnGUI()
{
foreach (Messages msgs in MessageList)
{
msgs.Draw();
}
}
}