PlayCanvas之entity常用语法

创建一个简单的实体
  • 为这个实体添加了一个模型组件,他的模型类型是一个box
// 创建一个实体
var entity = new pc.Entity();
/**
为这个实体添加一个模型组件,
arg0:组件类型,比如model
arg1:对应组件相关设置
*/ 
entity.addComponent("model",{
  type: "box",
  castShadows: true
});
// 将该实体添加进我们的根层级(不确切的说也即添加进场景,让我们看到)
this.app.root.addChild(entity);
  • 删除一个实体,这里我们删除之前的相机来演示

小插曲,app.root也是entity类型哦

// 因为我这边只有一个系统自动添加的camera,所以我这样是OK的
var camera = app.root.findComponent("camera");
camera.enabled = false;
// 如果层级树里有多个camera,且想关闭所有,则可使用以下方式
var cameraArr = app.root.findComponents("camera");
cameraArr.forEach( function(item){
     item.enabled = false;
} );
  • 不出意外,场景现在应该是一片黑暗,因为没有了眼睛,所以还是给个相机吧
var camera = new pc.Entity();
camera.addComponent("camera", {
    clearColor: new pc.Color(0.1, 0.1, 0.1) // 这样背景偏暗
});
camera.translate(0, 0, 10);
app.root.addChild(camera);
  • 我们来创建一个点光源,为上面的entity打一道正道的光(抑扬顿挫的旋律居然就出来了)
var light = new pc.Entity();
light.addComponent("light", {
    type: "point",
    color: new pc.Color(1, 0, 0),
    radius: 100
});
app.root.addChild(light);
light.setLocalPosition(0, 0, 5);
  • 我们给这个entity一个旋转的动画,但是目前这个脚本已经有太多内容了,并且旋转是个单独的功能(可以考虑单独放个脚本实现)
  1. 创建一个新脚本,命名为myTest.js
// 为entity添加一个脚本组件
entity.addComponent("script");
// 为这个脚本组件创建一个脚本实例
entity.script.create('myTest', {
     // attributes: {
     //     time: 4
     // },
    preloading:true
});
// 在myTest.js的update方法里添加如下代码即可
this.entity.rotate(0, 20 * dt, 0);

你可能感兴趣的:(PlayCanvas之entity常用语法)