@playcanvas/react
Version:
A React renderer for PlayCanvas – build interactive 3D applications using React's declarative paradigm.
28 lines • 1.2 kB
JavaScript
import { useComponent } from "../hooks/index.js";
import { Asset, Entity } from "playcanvas";
import { createComponentDefinition, validatePropsWithDefaults, getStaticNullApplication } from "../utils/validation.js";
/**
* The Sprite component allows an entity to render a 2D sprite.
*
* @param {SpriteProps} props - The props to pass to the sprite component.
* @see https://api.playcanvas.com/engine/classes/SpriteComponent.html
* @example
* <Entity>
* <Sprite asset={asset} />
* </Entity>
*/
export const Sprite = (props) => {
const safeProps = validatePropsWithDefaults(props, componentDefinition);
useComponent("sprite", safeProps, componentDefinition.schema);
return null;
};
const componentDefinition = createComponentDefinition("Sprite", () => new Entity("mock-sprite", getStaticNullApplication()).addComponent('sprite'), (component) => component.system.destroy(), "SpriteComponent");
componentDefinition.schema = {
...componentDefinition.schema,
asset: {
validate: (value) => value instanceof Asset,
errorMsg: (value) => `Invalid value for prop "asset": "${value}". Expected an Asset.`,
default: null
}
};
//# sourceMappingURL=Sprite.js.map