Ejemplo n.º 1
0
    private static Entity CreatePlayer(float3 startPos)
    {
        EntityManager entityManager = World.Active.GetOrCreateManager <EntityManager> ();

        EntityArchetype playerSetup  = PhysicsEntityFactory.CreatePlayerArchetype(entityManager);
        Entity          playerEntity = entityManager.CreateEntity(playerSetup);

        entityManager.SetComponentData(playerEntity, new Translation {
            Value = startPos
        });
        entityManager.SetComponentData(playerEntity, new Rotation {
            Value = quaternion.identity
        });
        entityManager.SetComponentData(playerEntity, new Velocity {
            Value = new float3(0, 0, 0)
        });

        RenderMesh renderer = new RenderMesh();
        GameObject capsule  = GameObject.CreatePrimitive(PrimitiveType.Capsule);

        renderer.mesh = capsule.GetComponent <MeshFilter> ().mesh;
        GameObject.Destroy(capsule);
        renderer.material = AssetDatabase.LoadAssetAtPath <Material> ("Assets/Materials/PlayerCapsuleMaterial.mat");

        entityManager.AddSharedComponentData(playerEntity, renderer);
        return(playerEntity);
    }