async Task Fire(Vector3 direction, bool byPlayer)
{
var bulletNode = CreateRigidBullet(byPlayer);
bulletNode.Rotation = new Quaternion(-50, 0, 0);
bulletNode.SetScale(0.1f);
var color = Color.White;
var nodeX = bulletNode.CreateChild();
nodeX.Scale = new Vector3(5, 1, 1);
var boxX = nodeX.CreateComponent<Box>();
boxX.Color = color;
var nodeZ = bulletNode.CreateChild();
nodeZ.Scale = new Vector3(1, 1, 5);
var boxZ = nodeZ.CreateComponent<Box>();
boxZ.Color = color;
var nodeY = bulletNode.CreateChild();
nodeY.Scale = new Vector3(1, 5, 1);
var boxY = nodeY.CreateComponent<Box>();
boxY.Color = color;
bulletNode.RunActions(new RepeatForever(new RotateBy(0.2f,Randoms.Next(30, 60), Randoms.Next(30, 60), 0f)));
await bulletNode.RunActionsAsync(
new MoveBy(5f, direction),
new CallFunc(() => bulletNode.SetScale(0f))); //collapse);
bulletNode.Remove();
}
}