创造你的世界
与物体互动
将物体附加到ZEPETO角色
8 分
将一个物体附加到zepeto角色上,以便当角色移动时,物体也随之移动。 步骤 1 准备一个物体预制件 首先,您需要将物体转换为预制件。 创建一个物体,将其拖到资产文件夹中并将其制作成预制件。 步骤 2 脚本将物体附加到角色的特定部分 在场景中实现zepeto角色创建代码作为默认。 📘 请参考以下指南。 \[ 创建一个zepeto角色 docid\ x uqcezxzv rams18k0bt ] 步骤 2 1 编写脚本 1\) 创建层级 > 创建空对象并将其重命名为 attachobject。 2\) 创建项目 > 创建 > zepeto > typescript 并将其重命名为 attachobject。 3\) 编写如下示例脚本。 import { zepetoscriptbehaviour } from 'zepeto script'; import { zepetocharacter, zepetoplayers } from 'zepeto character controller'; import { transform, animator, gameobject, humanbodybones, object } from 'unityengine'; export default class attachobject extends zepetoscriptbehaviour { // 要附加到身体上的对象预制件。 public prefitem gameobject; // 要附加对象的骨骼。 public bodybone humanbodybones; private localcharacter zepetocharacter; start() { zepetoplayers instance onaddedlocalplayer addlistener(() => { // 找到本地玩家并将其设置为 localcharacter。 this localcharacter = zepetoplayers instance localplayer zepetoplayer character; // 获取 localcharacter 的动画组件。 const animator animator = this localcharacter zepetoanimator; // 获取要附加对象的骨骼位置。 const bone transform = animator getbonetransform(this bodybone); // 创建对象预制件。 object instantiate(this prefitem, bone) as gameobject; }); } } 脚本流程如下: start() 注册 zepetoplayers instance onaddedlocalplayer 事件监听器,当本地玩家被添加时会触发。 将本地玩家设置为 localcharacter 变量。 获取 localcharacter 的动画组件,获取 bodybone 中指定的位置,并在该位置创建 prefitem 中指定的预制件。 步骤 2 2 在检查器中设置附加位置 1\) 完成脚本编写后,将脚本添加到 attachobject 对象中。 2\) 在检查器中,分配 pref 项,body bone。 pref 项是对象预制件。 body bone 是对象将被创建的位置。 选择左手,使其看起来像你在手中握着对象。 3\) 按下播放按钮运行,你将看到 zepeto 角色的左手上附着了对象。 步骤 3 应用 你可以以相同的方式将任何对象附加到 body bone 的所需位置。 📘 unity 人体骨骼 https //docs unity3d com/scriptreference/humanbodybones html https //docs unity3d com/scriptreference/humanbodybones html 以下是将 buildit 的颈枕对象附加到角色脖子上的示例,使 zepeto 角色看起来像是戴着颈枕。 您可以适当地调整对象的位置和旋转,以获得所需的外观。 在检查器中,将颈枕对象分配给预制项,并选择颈部作为身体骨骼。