房子模型开门、关门操作
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");
//}
看下小案例的构造--只有一个地面、第一人称、灯光、房子(地面、灯光省略不贴图)
先看第一人称视角
看房子模型
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");
//}
相关文章推荐
- MySQL学习笔记(3)之表操作
- 神奇的Block
- 动手动脑
- MySQL学习笔记(2)之库操作
- Rabin数字签名 Lamport 一次签名
- Android选项切换条SHSegmentControl
- u-boot加载Linux过程
- XAMPP-1.8.3上部署老的mediawiki-1.21.2遇到错误
- MySQL学习笔记(1)之MySQL简介
- MySQL导入sql文件
- C++ 中使用dlopen加载动态库
- 图片替换文本
- Spring 集成 Mybatis
- 对于牛老师作业陈老师作业补充(老陈,小石头的典型用户、用例图、场景)
- Android AIDL进程间通信(IPC)
- [置顶] Android layout_weight 理解
- 核心动画的使用-King
- d3 之deal with data
- java继承课后作业
- Hdoj 1317 XYZZY