How to make battle message of numbers?

I want to make battle numbers message.

It means, if player shoot and hit enemy, enemy take damage, vice versa,

I want to show that damage near place of hitting.

And this is must clear regardless of camera zooming, so world 3d text are not valid.

And so answer is GUI, right?

How to make?

You can transform the 3D coordinates into Screen coordinates and then assign this to a GUI.Label or whatever you want:

function Update () {
    var screenPos = camera.WorldToScreenPoint (target.position);
    print ("target is " + screenPos.x + " pixels from the left");
}

Keep in mind that the Screen Positions start at the left/bottom corner but the GUI starts at the left/top corner so you will have to use something like:

(notice the Screen.height - screenPos.y)

GUI.Label(new Rect(screenPos.x, Screen.height - screenPos.y, 20, 20), "" + damageNumber);