房子模型开门、关门操作

首先对房子模型进行一定的设置操作--切割动画片段、动画片段兼容



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



先看第一人称视角




看房子模型


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");
	//}



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值