T06_unity人物根物体动画 c#

接着“T06_unity人物触发器 c#”教程,保存场景

给场景起个名字unity07_RoleAnimation

 删除掉除地板人物以外对象

接下来我们要做一个门动画,需要手动搭建一个门

将创建的立方体reset位置归零

调整门的属性

 接下来打开动画面板

 动画面板(只限于位移和旋转)

 点击create按钮,开始创建动画,创建动画文件夹,

滚轮与鼠标左键点击上侧可以调节

先调时间轴确定时间的长度,1.30为1.5s(90代表1.5s  1s = 60 贞)

 (第一步:打开动画

     第二步:调节时间轴

     第三步:打开录制按钮)

打开录制按钮后,将y轴调成3.5

关闭录制按钮,播放即可看到动画门

 如果想把开门改成2s ,拖动最上面的小点按住移至2s即可

找到刚创建的动画RootDownAnimation之后将他的loop time 对勾去掉

再次播放,就不会循环开门了

 双击状态机打开控制面板

 点击空板创建一个空的状态

 在右侧面板改名Idle(闲置)

 

将闲置Idle设置为默认状态

在闲置下Idle创建一个连接

连接下面的方块

 选择参数Parameters创建同时创建变量

之后选中设置卡子的线 然后 点击加号

 设置成功,运行试一下找到

 门就被打开了

 点击连接线,看右侧属性——has exit time(有退出时间吗)将对勾去掉

has exit time 代表需不需要执行完运动后的剩余时间

会立即执行 没有延迟 

将RootDoenAnimation改名为OpenDoor 

 

在状态机上选择copy

 再右键粘贴

 将OpenDoor0 改名为 CloseDoor

 将CloseDoor属性面板1改为-1

 再开关门之间创建一条连接线

 点击连接线,关闭 has exit time

 点击‘+’,把默认true 改成false

再创建连接线

动画部分完成,接下来创建触发器

在门再创建一个触发器,门本身有个触发器是为了阻挡玩家穿过

打开 is Trigger 对勾

接下来调一下触发器的属性面板

 门的触发器完成,接下来给门写代码

首先创建一个脚本起名为 OpenDoor

 将脚本绑定在门身上

 将代码复制

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class OpenDoor : MonoBehaviour
{
    private Animator animator;
    private void Start()
    {
        animator = GetComponent<Animator>();
        animator.SetBool("isOpen", true); //开门指令
    }
    private void OnTriggerEnter(Collider other)
    {
        if (other.CompareTag("Player"))
        {
            animator.SetBool("isOpen", true);//开门指令
        }
    }
   
}
即可完成  手动开关门

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值