Babylonjs学习笔记(八)——网格行为

书接上回,这里讨论MeshAction网格行为!!!

一、搭建基础场景
let box:AbstractMesh;
let cube:AbstractMesh;
let sphere:AbstractMesh;
let cylinder:AbstractMesh;
let mat:PBRMaterial;

// 创建天空盒
const createSkyBox = (scene:Scene):void=>{
  const envTex = CubeTexture.CreateFromPrefilteredData('./env/environment.env',scene)
  scene.environmentTexture = envTex;
  scene.createDefaultSkybox(envTex,true,1000,0.2,true)
  scene.environmentIntensity = 1.5
}

// 创建网格
const creatMeshes=(scene:Scene):void=>{
  mat = new PBRMaterial('pbr')
  mat.albedoColor = new Color3(1,0,0);
  mat.roughness =1

  cube = MeshBuilder.CreateBox('cube',{size:2})
  cube.material = mat
  cube.position = new Vector3(-4,0,0)

  sphere = MeshBuilder.CreateSphere('sphere',{diameter:2})
  sphere.material = mat
  sphere.position = new Vector3(0,0,0)

  cylinder = MeshBuilder.CreateCylinder('cylinder',{diameter:2})
  cylinder.material = mat
  cylinder.position = new Vector3(4,0,0)

  // 创建行为
  // createActions(scene)
}

// 创建相机
new FreeCamera("camera",new Vector3(0,0,-8));



 

二、创建网格行为

const createActions=(scene:Scene):void=>{

  cube.actionManager = new ActionManager()
  /**
   * 点击之后放大
   */
  cube.actionManager.registerAction(
    new SetValueAction(
      ActionManager.OnPickDownTrigger,
      cube,
      "scaling",
      new Vector3(1.2,1.2,1.2)
  ))?.then(new SetValueAction(
      ActionManager.NothingTrigger,
      cube,
      "scaling",
      new Vector3(1,1,1)
  ))

  /**
   * 点击切换材质反照率颜色
   * 3秒内切成换绿色
   * 
   * 再次点击
   * 1秒内切换成蓝色
   */
  sphere.actionManager = new ActionManager()
  sphere.actionManager.registerAction(
    new InterpolateValueAction(
      ActionManager.OnPickDownTrigger,
      mat,
      "albedoColor",
      new Color3(0,1,0),
      2000
    )
  )?.then( 
    new InterpolateValueAction(
      ActionManager.OnPickDownTrigger,
      mat,
      "albedoColor",
      new Color3(0,0,1),
      1000
  ))

  
  /**
   * 圆柱体绕X轴旋转
   */
  scene.actionManager = new ActionManager()
  scene.actionManager.registerAction(
    new IncrementValueAction(
      ActionManager.OnEveryFrameTrigger,
      cylinder,
      "rotation.x",
      0.01,
    )
  )

}
 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/120318.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何在在线Excel文档中规范单元格输入

在日常的工作中,我们常常需要处理大量的数据。为了确保数据的准确性和可靠性。我们需要对输入的数据进行规范化和验证。其中一个重要的方面是规范单元格输入。而数据验证作为Excel中一种非常实用的功能,它可以帮助用户规范单元格的输入,从而提…

简单代理模式

代理模式 代理模式(Proxy),为其他对象提供一种代理以控制对这个对象的访问。 结构图如下: ISubject接口,定义了RealSubject和Proxy的共用接口方法,这样就可以在任何使用RealSubject的地方使用Proxy代理。 ISubject接口 public…

JavaScript使用正则表达式

正则表达式(RegExp)也称规则表达式(regular expression),是非常强大的字符串操作工具,语法格式为一组特殊字符构成的匹配模式,用来匹配字符串。ECMAScript 3以Perl为基础规范JavaScript正则表达式,实现Perl 5正则表达式的子集。Ja…

小米手机怎么识别图片上的表格文字?

前言: 小米手机怎么识别图片上的文字?有二种解决方案:一是直接用系统自带的OCR工具来实现,二是借助第三方软件(如金鸣识别)来实现。 一、用小米自带的系统工具来实现。 对于MIUI12.5以上系统的小米手机来…

学C++跟着视频学还是跟着书学?

学C跟着视频学还是跟着书学? 感觉得看基础和目标 如果不是喜欢 C 或者以求职 / 完成 C 相关工作为目标的话,菜鸟教程其实都够了,基本语法掌握就差不多,然后多去写。 最近很多小伙伴找我,说想要一些C的资料&#xff0…

如何在在线Excel文档中对数据进行统计

本次我们将用zOffice表格的公式与数据透视表分析样例(三个班级的学生成绩)。zOffice表格内置了大量和Excel相同的统计公式,可以进行各种常见的统计分析,如平均值、标准差、相关性等。同时,zOffice也有数据透视表功能&a…

【Web】在前端中,HTML<meta>标签

<meta>实例 <head><meta name"description" content"免费在线教程"><meta name"keywords" content"HTML,CSS,XML,JAVASCRIPT"><meta name"author" content"runoob"><meta char…

java高级之单元测试、反射

1、Junit测试工具 Test定义测试方法 1.被BeforeClass标记的方法,执行在所有方法之前 2.被AfterCalss标记的方法&#xff0c;执行在所有方法之后 3.被Before标记的方法&#xff0c;执行在每一个Test方法之前 4.被After标记的方法&#xff0c;执行在每一个Test方法之后 public …

相亲交友小程序源码 同城相亲交友小程序源码

相亲交友小程序源码 同城相亲交友小程序源码 收费模式&#xff1a; 1、会员开通VIP收费&#xff1b;3、会员购买服务项目收费&#xff08;可以自定义服务项目&#xff09;&#xff1b; 二、全民推广系统&#xff1a; 1、邀请用户注册奖励&#xff08;邀请一个用户进入注册…

一个数组实现两个栈

一个数组实现两个栈 基本思路&#xff1a; 1.定义两个栈顶top1-1&#xff0c;top2maxsize 2.栈满&#xff0c;当top1与top2相差1时栈满 package 例题; //一个数组实现两个栈 public class TwoStack {private int[] arr;private int maxSize;//定义栈顶private int top1;private…

C# TCP Server服务端多线程监听RFID读卡器客户端上传的读卡数据

本示例使用设备介绍&#xff1a;液显WIFI无线网络HTTP协议RFID云读卡器可编程实时可控开关TTS语-淘宝网 (taobao.com) using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using Sy…

mindspore mindcv图像分类算法;模型保存与加载

参考&#xff1a; https://www.mindspore.cn/tutorials/en/r1.3/save_load_model.html https://github.com/mindspore-lab/mindcv/blob/main/docs/zh/tutorials/finetune.md 1、mindspore mindcv图像分类算法 import os from mindcv.utils.download import DownLoad import o…

移远EC600U-CN开发板 day03

控件探索-按钮&#xff08;lv.btn&#xff09; (1) 创建并显示一个按钮 * 核心代码 btn lv.btn(scr) #将按钮与src对象关联 btn.align(lv.ALIGN.CENTER,0,0) #居中显示&#xff08;第1个0表示x的偏移量&#xff0c;第2个0表示相对于y的偏移量&#xff09; label lv.l…

小白学爬虫:手机app分享商品短连接获取淘宝商品链接接口|淘宝淘口令接口|淘宝真实商品链接接口|淘宝商品详情接口

通过手机APP分享的商品短链接&#xff0c;我们可以调用相应的接口来获取淘口令真实URL&#xff0c;进而获取到PC端的商品链接及商品ID。具体步骤如下&#xff1a; 1、通过手机APP分享至PC端的短链接&#xff0c;调用“item_password”接口。 2、该接口将返回淘口令真实URL。 3…

从使用的角度看 ByConity 和 ClickHouse 的差异

自 ClickHouse Inc 宣布其重要新功能仅在 ClickHouse Cloud 上开放以来&#xff0c;一些关注 ByConity 开源的社区小伙伴也来询问 ByConity 后续开源规划。为回答社区疑问&#xff0c;我们将之前分享的关于 ByConity 与 ClickHouse 相关功能对比的 webinar 整理为文章&#xff…

Git 基础知识回顾及 SVN 转 Git 自测

背景 项目开发过程中使用的版本控制工具是 SVN&#xff0c;Git 多有耳闻&#xff0c;以前也偶尔玩过几次&#xff0c;但是工作中不用&#xff0c;虽然本地也有环境&#xff0c;总是不熟练。 最近看一本网络开源技术书时&#xff0c;下载源码部署了一下&#xff0c;又温故了一…

助力工业数字化!TDengine 与恩菲 MIM+ 工业互联网平台实现兼容性互认

在云计算、物联网、5G等新兴技术快速发展的当下&#xff0c;制造企业想要运用新兴技术实现数字化转型&#xff0c;工业互联网平台的应用和打造是非常关键的转型要素。在工业互联网平台的发展中&#xff0c;数据处理上存在的问题一直都是令企业所头疼的&#xff0c;越来越多的案…

Java并发编程第11讲——AQS设计思想及核心源码分析

Java并发包&#xff08;JUC&#xff09;中提供了很多并发工具&#xff0c;比如前面介绍过的ReentrantLock、ReentrantReadWriteLock、CountDownLatch、Semaphore、FutureTask等锁或者同步部件&#xff0c;它们的实现都用到了一个共同的基类——AbstractQueuedSynchronizer&…

汽车网络安全渗透测试概述

目录 1.汽车网络安全法规概述 1.1 国外标准 1.2 国内标准 2.汽车网络安全威胁分析 2.1 汽车网络安全资产定义 2.2 汽车网络安全影响场景及评级示例 3.汽车网络安全渗透测试描述 3.1 参考法规 3.2 渗透测试内容 4.小结 1.汽车网络安全法规概述 近年来&#xff0c;汽车…

【UE4】UE编辑器乱码问题

环境&#xff1a;UE4.27、vs2019 如何解决 问题原因&#xff0c;UE的编码默认是UTF-8&#xff0c;VS的默认编码是GBK 通过"高级保存选项" 直接修改VS的 .h头文件 的 编码 为 UTF-8 步骤1. 步骤2. 修改编码后&#xff0c;从新编译&#xff0c;然后就可以解决编辑器…