void CreateOrReinitLivingEntityData(BaseLivingEntityConfig entetyConfig, ref LivingEntityData entityData) { Vector3 getPosition(Vector2 normalizedPosition) { var sb = sceneBounds(); var center = sb.center; var size = sb.size; size = new Vector3(normalizedPosition.x * size.x, normalizedPosition.y * size.y); return(center + size); } if (entityData == null) { entityData = new LivingEntityData(); } var initData = entetyConfig.GetData(); entityData.position = getPosition(initData.position); entityData.rotation = initData.rotation; entityData.scale = initData.scale; entityData.speed = initData.speed; entityData.baseColor = initData.color; entityData.layer = initData.layer; entityData.radius = initData.radius; entityData.alpha = 0f; }
public void PopulateEntity(int index, LivingEntityData data, Vector3[] vertices, Color[] colors) { // Vertex int pointIndex = index * 4; var matrix = Matrix4x4.TRS(Vector3.zero, data.Rotation, data.Scale); var dataPosition = data.Position; Vector3 p1 = dataPosition + (Vector3)(matrix * _spriteVertices[0]); Vector3 p2 = dataPosition + (Vector3)(matrix * _spriteVertices[1]); Vector3 p3 = dataPosition + (Vector3)(matrix * _spriteVertices[2]); Vector3 p4 = dataPosition + (Vector3)(matrix * _spriteVertices[3]); vertices[pointIndex + 0] = p1; vertices[pointIndex + 1] = p2; vertices[pointIndex + 2] = p3; vertices[pointIndex + 3] = p4; // Color var dataColor = data.Color; colors[pointIndex + 0] = dataColor; colors[pointIndex + 1] = dataColor; colors[pointIndex + 2] = dataColor; colors[pointIndex + 3] = dataColor; }
public void Initalize(LivingEntityData <LivingEntity> data) { health = data.health; maxHealth = data.maxHealth; moveSpeed = data.moveSpeed; names = data.names; dead = health <= 0; }
public void Populate(int numberOfEntities, BaseLivingEntityConfig entetyConfig) { while (_enteties.Count < numberOfEntities) { LivingEntityData entityData = null; CreateOrReinitLivingEntityData(entetyConfig, ref entityData); _enteties.Add(entityData); } }