Skip to content

Рекомендации к документации #243

@Satana6699

Description

@Satana6699
  1. Изменить WorldExtensions на WorldPluginsExtensions

  2. В примере с Unity Jobs в части ниже хотелось бы видеть более конкертный пример. Довольно долго тупил на нём. Я не сразу понял, что эти примеры не связаны друг с другом. В общем создают экземпляр класса ExampleParallelJob, а класс ниже называется TestParallelJobReference. Почему бы не объединить эти два примера в один? В идеале хочется просто скопировать код из документации, далее вставить в редактор и на выходе иметь рабочий код. Я так всегда делаю, так как в редакторе проще читать код.

Example job scheduling:

public sealed class SomeSystem : ISystem {
private Filter filter;
private Stash stash;
...
public void OnUpdate(float deltaTime) {
var nativeFilter = this.filter.AsNative();
var parallelJob = new ExampleParallelJob {
entities = nativeFilter,
healthComponents = stash.AsNative(),
// Add more native stashes if needed
};
var parallelJobHandle = parallelJob.Schedule(nativeFilter.length, 64);
parallelJobHandle.Complete();
}
}
Example job:

[BurstCompile]
public struct TestParallelJobReference : IJobParallelFor {
[ReadOnly]
public NativeFilter entities;
public NativeStash healthComponents;

public void Execute(int index) {
    var entity = this.entities[index];
    
    ref var component = ref this.healthComponents.Get(entity, out var exists);
    if (exists) {
        component.Value += 1;
    }
    
    // Alternatively, you can avoid checking existance of the component
    // if the filter includes said component anyway
    
    ref var component = ref this.healthComponents.Get(entity);
    component.Value += 1;
}

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions