Bases de l'armurerie. Traits

Les traits , comme vous l'avez peut-être deviné dans les articles précédents, sont le système de script d'Armory. Si vous avez travaillé avec le moteur Source, vous vous souvenez probablement de ces cubes roses - là, ils étaient appelés Entités. C'est donc avec nous, l'essence est la même. Dans notre cas, les traits utilisés ne peuvent être consultés dans l' Outliner qu'en passant à la vue Données orphelines dans Collections . Ceci est extrêmement gênant car il n'y a pas d'affichage visuel dans les scripts de la scène.





Types de traits





Les traits sont divisés en plusieurs types:





  • Haxe - écrire des scripts à partir de zéro dans Haxe.





  • Wasm - voir WebAssembly .





  • UI - fonctionne par l'interface utilisateur.





  • Bundled - scripts Haxe prêts / groupés.





  • Nodes - Logic Editor ( blueprints UE4).





(!) .





Fake User





Logic Editor traits - . , Blender     . trait . , .





Traits Events

Trait :





  • Trait.notifyOnAdd() - trait.





  • Trait.notifyOnInit() - .





  • Trait.notifyOnRemove() - .





  • Trait.notifyOnUpdate() - .





  • Trait.notifyOnRender() - .





  • Trait.notifyOnRender2D() - 2D.





. , onInit . trait , Scene.active.notifyOnInit() - .





traits

Blender. @prop. var . Final , trait Haxe Reflection API, .









  • :





    • Int





    • Float





    • Boolean





  • String









    • iron.object.Object





    • iron.object.CameraObject





    • iron.object.LightObject





    • iron.object.MeshObject





    • iron.object.SpeakerObject





  • :





    • iron.math.Vec2





    • iron.math.Vec3





    • iron.math.Vec4





:





 package arm;
 
 // See below ("Object data types")
import iron.object.CameraObject;
 
import iron.math.Vec2;
import iron.math.Vec3;
import iron.math.Vec4;
 
class MyTrait extends iron.Trait {
	// Primitive data types
	@prop
	var intValue: Int = 40; // Type annotation possible, but not required
	@prop
	var floatValue = 3.14;
	@prop
	var stringValue = "Hello world!";
	@prop
	var booleanValue = true;
 
	// Object data types
	@prop
	var objValue: iron.object.Object; // Needs type annotation to be recognized
	@prop
	var camObjValue: CameraObject; // Type can be imported (see above)...
	@prop
	var lightObjValue: iron.object.LightObject; // .. or not, both will work
	@prop
	var meshObjValue: iron.object.MeshObject;
	@prop
	var speakerObjValue: iron.object.SpeakerObject;
 
	// Vector data types
	@prop
	var vector2DValue: Vec2 = new Vec2(0.2, 0.5); // Initialization possible...
	@prop
	var vector3DValue: Vec3; //... but not required
	@prop
	var vector4DValue = new Vec4(1, 2, 3, 4);
 
	// Not visible in Blender, `@prop` is missing
	var notVisibleValue = 0.0;
 
	// ...
}
      
      







:





@prop:





  • @prop  





  •  









  • , , .





traits sources/ arm. - , - . .





, Haxe package syntax traits. trait general.BoxBehavior - Sources/arm/general «BoxBehavior.hx»





, traits :  «general.terrain.TerrainCollider» «TerrainCollider.hx» «Sources/arm/ general/terrain».





, Class .





  1. Armory Engine.





  2. Armory





  3. Wasm dans le moteur de l'armurerie












All Articles