博客
关于我
Unity TimeLine的Playable脚本编写
阅读量:83 次
发布时间:2019-02-25

本文共 2117 字,大约阅读时间需要 7 分钟。

TimeLine PlayAble脚本编写指南

1. 新建 Playable Behavior 和 Playable Asset

在开始编写 Playable脚本之前,首先需要新建两个关键组件:Playable BehaviorPlayable Asset。这两个组件是 Playable 生命周期的基础,必须一并创建,才能实现完整的脚本功能。

  • Playable Asset 可以是任何类型的资源,例如 Text、Cube、Animation 等。它是脚本操作的目标对象,决定了脚本的具体作用范围。
  • Playable Behavior 定义了 Playable 的生命周期,包括开始、持续和结束状态。它决定了脚本在不同时间点的行为表现。

通过 UI,新建这些组件并将它们挂接到目标对象上,确保它们处于正确的位置和层级。

2. Playable Behavior 生命周期说明

Playable Behavior 的生命周期分为三个关键阶段:

  • 初始化(OnStart):当脚本被激活时,执行初始化操作。通常用于准备必要的数据或资源。
  • 持续(Update):在每帧或每段时间调用一次,用于更新当前状态或执行重复性操作。
  • 终止(OnStop):当脚本被移除或结束时,执行清理操作,释放资源或撤销变化。
  • 理解这些阶段对于编写高效脚本至关重要。例如,在UI.Text赋值操作中,初始化阶段可以加载目标 Text 组件,持续阶段则根据时间更新其文本内容。

    3. 脚本编辑

    在 Unity 中,脚本编写采用 C# 语言。以下是一些常见操作示例:

    示例 1:赋值 UI.Text
  • 创建一个新的 C# Script 组件,挂接到 Text 组件上。
  • 在脚本中定义一个 Update 方法,使用 Time.deltaTime 计算时间。
  • 根据时间比例,动态改变 Text 组件的 text 字段内容。
  • public class AssignText : MonoBehaviour {    public Text targetText;    private float startTime;    public void Start() {        startTime = Time.time;    }    public void Update() {        if (targetText) {            float elapsed = Time.time - startTime;            targetText.text = "Elapsed: " + elapsed.ToString("F2");        }    }}
    示例 2:改变 Cube 刚体颜色
  • 创建一个新的 Playable Behavior脚本,挂接到 Cube 上。
  • 在脚本中定义一个 Update 方法,随着时间变化改变 Cube 的颜色。
  • 确保在 OnStop 方法中释放资源或将颜色恢复到初始状态。
  • public class ChangeCubeColor : PlayableBehavior {    private Renderer renderer;    private Color originalColor;    public override void OnStart() {        renderer = GetComponent
    (); if (renderer) { originalColor = renderer.material.color; } } public override void Update() { if (renderer) { renderer.material.color = new Color( originalColor.r + Time.deltaTime * 0.1f, originalColor.g + Time.deltaTime * 0.1f, originalColor.b + Time.deltaTime * 0.1f ); } } public override void OnStop() { if (renderer) { renderer.material.color = originalColor; } }}

    注意事项

    • 脚本名称:确保脚本名称清晰,方便以后维护和查找。
    • 层级管理:合理管理脚本的层级,避免冲突或覆盖。
    • 性能优化:在 Update 方法中尽量减少资源消耗,避免长时间运行导致性能问题。

    通过以上步骤,可以轻松编写并优化 TimeLine 的 PlayAble 脚本,实现各种复杂场景的逻辑控制。

    转载地址:http://zjp.baihongyu.com/

    你可能感兴趣的文章
    no connection could be made because the target machine actively refused it.问题解决
    查看>>
    No Datastore Session bound to thread, and configuration does not allow creation of non-transactional
    查看>>
    No fallbackFactory instance of type class com.ruoyi---SpringCloud Alibaba_若依微服务框架改造---工作笔记005
    查看>>
    No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc
    查看>>
    No mapping found for HTTP request with URI [/...] in DispatcherServlet with name ...的解决方法
    查看>>
    No mapping found for HTTP request with URI [/logout.do] in DispatcherServlet with name 'springmvc'
    查看>>
    No module named 'crispy_forms'等使用pycharm开发
    查看>>
    No module named cv2
    查看>>
    No module named tensorboard.main在安装tensorboardX的时候遇到的问题
    查看>>
    No module named ‘MySQLdb‘错误解决No module named ‘MySQLdb‘错误解决
    查看>>
    No new migrations found. Your system is up-to-date.
    查看>>
    No qualifying bean of type XXX found for dependency XXX.
    查看>>
    No resource identifier found for attribute 'srcCompat' in package的解决办法
    查看>>
    no session found for current thread
    查看>>
    No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
    查看>>
    NO.23 ZenTaoPHP目录结构
    查看>>
    no1
    查看>>
    NO32 网络层次及OSI7层模型--TCP三次握手四次断开--子网划分
    查看>>
    NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata
    查看>>
    Node JS: < 一> 初识Node JS
    查看>>