加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

DirectorManager设置

发布时间:2020-12-15 07:33:52 所属栏目:Java 来源:网络整理
导读:关联的图片我先放上来啊: DirectorManager,首先在开始的时候直接给所添加的物件附上一个PlayableDirector: 1 [RequireComponent(typeof(PlayableDirector))] 先解释一下,这个Scrpit的意义:因为在播放动画的过程中,我需要一个管理导演的脚本,这个导演

关联的图片我先放上来啊:

DirectorManager,首先在开始的时候直接给所添加的物件附上一个PlayableDirector:

1
[RequireComponent(typeof(PlayableDirector))]

先解释一下,这个Scrpit的意义:因为在播放动画的过程中,我需要一个管理导演的脚本,这个导演有自己的剧本,
他有可能要演出正面刺,背面刺,开宝箱,和Boss决战时最后一刀重击致命的一刀,这就是此代码的目的。

首先我命名的是PlayableDirector ,然后定义了正面刺的剧本(此剧本)从Unity中直接拖入就行了:

1
2
3
4
5
  public PlayableDirector pd;
public TimelineAsset frontStab;

public ActorManager Attacker;
public ActorManager Victim; //上述两行是将Attacker 和 Victim 加入

然后在Start里面去获取这个PlayerableDirector:

1
2
3
pd = GetComponent<PlayableDirector>();
pd.playOnAwake = false; //这一行是为了把PlayOnWake设置为false
pd.playableAsset = Instantiate(frontStab);

frontStab轨道如下:

去用foreach去读frontStab的每一轨的东西,然后去判断每一个的名字:

1
2
3
4
5
6
7
8
9
if (track.streamName == "attacker Animation")
{
pd.SetGenericBinding(track.sourceObject,am.ac.anim);
}

if (track.streamName == "victim Animation")
{
pd.SetGenericBinding(track.sourceObject,am.ac.anim);
}

在Update中去看是哪个Layer来播放这个动画(下方是仅作为测试所用):

1
2
3
4
if (Input.GetKey(KeyCode.H)&& gameObject.layer==LayerMask.NameToLayer("Player"))
{
pd.Play();
}

去检测是Player层如果是的话就会播放(在此也可以调节为Enemy,那么就会是黑骑士插我们)。

今天就到这里吧,背了好几个list的单词,我得去消化消化了。再见各位:

原文:大专栏 ?DirectorManager设置

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读