Style Guide - PixeyeHQ/actors.unity GitHub Wiki
💡 Note that there can be exceptions to these rules. These rules are forced only for Pixeye Games members or contributors that want to make official tutorials, samples.
The PCS favors a coding-centric approach and is designed for coders, not designers.
-
Use
<TYPE><NAME>
for classes and structs:- ProcessorAI
- LayerGame
- ActorAlpaca
- ComponentHealth
- MonoDoor
- SignalAttack
- TaskMove
-
Use
<TYPE><NAME>_<SPECIFICATION>
for partial classes:- ActorPlayer_DB.cs
- ActorPlayer_ActionShoot.cs
- ActorPlayer_AnimationGuide.cs
-
Use plural names for ECS groups.
Group<ComponentBehavior> pawns;
-
Use Hungarian Notation for local components you received.
var cbehavior = entity.ComponentBehavior();
- Spaces
- Size: 2
- Bind Data
- Bind Tags
- Bind Components
- Setup Components
public class ActorStonePiles : Actor
{
public DataObject data;
protected override void Setup()
{
entity.Bind(data);
entity.Set(tags.interact);
var cobject = entity.Set<ComponentObject>();
var ccolider = entity.Set<ComponentCollider>();
var cwork = entity.Set<ComponentWork>();
// component object
cobject.position = transform.position;
// component collider
ccolider.source.offset = Vector3.zero;
ccolider.source.size = 0.65f;
// component work
cwork.SetSlots(transform, 0.25f);
cwork.jobTypes = new[] {tags.pawn_digger};
cwork.handle = TaskWorkBreak.Execute;
}
}
💡 There is no DataObject or Data bind in the framework. It's custom example based on the real code of our project.
Get all components you are going to work with in one place.
foreach (var blocker in blockers)
{
var cobject = blocker.ComponentObject();
var cblocker = blocker.ComponentBlocker();
var xmin = cobject.position.x - cblocker.range / 2f;
var xmax = cobject.position.x + cblocker.range / 2f;
// other code
}