/**获取动画 */
public getAni(): void {
this.ani = this.owner.sprite3d.getComponent(Laya.Animator);
let all = 486;
let arr = ["3,21,run,true", "29,59,wolk,true", "70,120,cheer,true", "125,380,dance,true", "393,440,forerake,false", "443,485,backward,true"];
let state: Laya.AnimatorState;
console.log("getANi");
for (let i = 0; i < arr.length; i++) {
let arrString = arr[i].split(",");
// 创建动画动作状态
state = new Laya.AnimatorState();
//设置动作状态的名称
state.name = arrString[2];
// 开始时间
state.clipStart = parseInt(arrString[0]) / all;
// 结束时间
state.clipEnd = parseInt(arrString[1]) / all;
//得到默认动画赋值给Clip(getDefaultState默认动画为Unity中animation的数组顺序0下标的动画)
state.clip = this.ani.getDefaultState().clip;
//动画播放是否循环
state.clip.islooping = false;
// state.addScript(Laya.AnimatorStateScript);
if (arrString[3] == "true") state.clip.islooping = true;
this.ani.addState(state);
// this.ani.play(arrString[2]);
}
}
/**播放动画 */
public playAni(aniName: PERSON_ANI, islooping: boolean = true): void {
console.log("播放:" + aniName);
this.ani.getControllerLayer().getAnimatorState(aniName).clip.islooping = islooping;
this.ani.play(aniName);
}
////迷茫,这这样写,就是有一个 不循环,所有的都不循环了…… 求解答鸭