您的位置:首页 > 其它

房子模型开门、关门操作

2015-11-08 19:38 239 查看
首先对房子模型进行一定的设置操作--切割动画片段、动画片段兼容







看下小案例的构造--只有一个地面、第一人称、灯光、房子(地面、灯光省略不贴图)



先看第一人称视角







看房子模型








playercollisions


#pragma strict

private var doorisopen:boolean=false;
private var doortimer:float=0.0;
private var currentdoor:GameObject;

var door_open_time:float=3.0;
var door_open_sound:AudioClip;
var door_shut_sound:AudioClip;

//function Update(){
// if(doorisopen){
// doortimer+=Time.deltaTime;
//}
//if(doortimer>door_open_time){
// shutdoor(currentdoor);
// doortimer=0.0;
//}
//}

/*
如果门开了就开始计时,如果时间大于3秒,就关门,然后时间还原为0
*/
function Update(){
if(doorisopen){
doortimer+=Time.deltaTime;
if(doortimer>door_open_time){
door(false,door_shut_sound,"doorshut",currentdoor);
doortimer=0.0;
}
}
}
//检测角色控制器与其他碰撞器碰撞的专用函输,hit存放碰撞信息用
function OnControllerColliderHit(hit:ControllerColliderHit){
//判断与角色控制器碰撞的物体的标签名,并且门关闭时,执行开门操作
if(hit.gameObject.tag=="playerDoor" && doorisopen==false){
//将门付给一个gameObject供关门操作用
currentdoor = hit.gameObject;
//opendoor(hit.gameObject);
door(true,door_open_sound,"dooropen",currentdoor);
}
}
function door(doorcheck:boolean,a_clip:AudioClip,anim_name:String,thisdoor:GameObject){
doorisopen = doorcheck;
thisdoor.audio.PlayOneShot(a_clip);
thisdoor.transform.parent.animation.Play(anim_name);
}
//显示碰撞到的物体的名字
//function opendoor(door:GameObject){
// doorisopen = true;
// door.audio.PlayOneShot(door_open_sound);
// door.transform.parent.animation.Play("dooropen");
//}

//function shutdoor(door:GameObject){
// doorisopen = false;
// door.audio.PlayOneShot(door_shut_sound);
// door.transform.parent.animation.Play("doorshut");
//}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: