碰撞检测 Unity实验代码

  • CharacterCollision.cs
  • RayCharacterCollision.cs
  • TriggerCollision.cs
  • CharacterCollision.cs(加入开门展示粒子效果)
  • RayCharacterCollision.cs(加入开门展示粒子效果)

CharacterCollision.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class CharacterCollision : MonoBehaviour {private bool doorIsOpen = false;private float doorTimer = 0.0f;public float doorOpenTime = 3.0f;// Use this for initializationvoid Start () {}void OnControllerColliderHit(ControllerColliderHit hit){if (hit.gameObject.tag == "houseDoor" && doorIsOpen == false)OpenDoor ();}void OpenDoor(){doorIsOpen = true;GameObject myHouse = GameObject.Find ("house");myHouse.GetComponent<Animation> ().Play ("dooropen");}void ShutDoor(){doorIsOpen = false;GameObject myHouse = GameObject.Find ("house");myHouse.GetComponent<Animation> ().Play ("doorshut");}// Update is called once per framevoid Update(){if (doorIsOpen) {doorTimer += Time.deltaTime;if (doorTimer > doorOpenTime) {ShutDoor ();doorTimer = 0.0f;}}}
}

RayCharacterCollision.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class RayCharacterCollision : MonoBehaviour {private bool doorIsOpen = false;private float doorTimer = 0.0f;public float doorOpenTime = 3.0f;// Use this for initializationvoid Start () {}void OpenDoor(){doorIsOpen = true;GameObject myHouse = GameObject.Find ("house");myHouse.GetComponent<Animation> ().Play ("dooropen");}void ShutDoor(){doorIsOpen = false;GameObject myHouse = GameObject.Find ("house");myHouse.GetComponent<Animation> ().Play ("doorshut");}// Update is called once per framevoid Update(){RaycastHit hit;if(Physics.Raycast(transform.position,transform.forward,out hit,5)){if(hit.collider.gameObject.tag=="houseDoor"&&doorIsOpen==false){OpenDoor();}}if (doorIsOpen) {doorTimer += Time.deltaTime;if (doorTimer > doorOpenTime) {ShutDoor ();doorTimer = 0.0f;}}}
}

TriggerCollision.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class TriggerCollision : MonoBehaviour {// Use this for initializationvoid Start () {}// Update is called once per framevoid Update () {transform.Translate (transform.right * Input.GetAxis ("Horizontal") * Time.deltaTime, Space.Self);}void OnTriggerEnter(Collider other){Debug.Log ("Come to triggerEnter");if (other.gameObject.tag == "tagSphere")Destroy (other.gameObject);}
}

CharacterCollision.cs(加入开门展示粒子效果)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class CharacterCollision : MonoBehaviour {private bool doorIsOpen = false;private float doorTimer = 0.0f;public float doorOpenTime = 3.0f;// Use this for initializationvoid Start () {StopPaticleSystemDemo ();}void OnControllerColliderHit(ControllerColliderHit hit){if (hit.gameObject.tag == "houseDoor" && doorIsOpen == false)OpenDoor ();}void OpenDoor(){doorIsOpen = true;GameObject myHouse = GameObject.Find ("house");myHouse.GetComponent<Animation> ().Play ("dooropen");}void ShutDoor(){doorIsOpen = false;GameObject myHouse = GameObject.Find ("house");myHouse.GetComponent<Animation> ().Play ("doorshut");}void OpenPaticleSystemDemo(){string particle="particle";GameObject.Find (particle).GetComponent<ParticleSystem> ().Play ();}void StopPaticleSystemDemo(){string particle="particle";GameObject.Find (particle).GetComponent<ParticleSystem> ().Stop ();}// Update is called once per framevoid Update(){if (doorIsOpen) {doorTimer += Time.deltaTime;OpenPaticleSystemDemo ();if (doorTimer > doorOpenTime) {ShutDoor ();doorTimer = 0.0f;}}}
}

RayCharacterCollision.cs(加入开门展示粒子效果)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class RayCharacterCollision : MonoBehaviour {private bool doorIsOpen = false;private float doorTimer = 0.0f;public float doorOpenTime = 3.0f;// Use this for initializationvoid Start(){StopPaticleSystemDemo ();}void OpenDoor(){doorIsOpen = true;GameObject myHouse = GameObject.Find ("house");myHouse.GetComponent<Animation> ().Play ("dooropen");}void ShutDoor(){doorIsOpen = false;GameObject myHouse = GameObject.Find ("house");myHouse.GetComponent<Animation> ().Play ("doorshut");}void OpenPaticleSystemDemo(){string particle="particle";GameObject.Find (particle).GetComponent<ParticleSystem> ().Play ();}void StopPaticleSystemDemo(){string particle="particle";GameObject.Find (particle).GetComponent<ParticleSystem> ().Stop ();}// Update is called once per framevoid Update(){RaycastHit hit;if(Physics.Raycast(transform.position,transform.forward,out hit,5)){if(hit.collider.gameObject.tag=="houseDoor"&&doorIsOpen==false){OpenDoor();OpenPaticleSystemDemo ();}}if (doorIsOpen) {doorTimer += Time.deltaTime;if (doorTimer > doorOpenTime) {ShutDoor ();doorTimer = 0.0f;}}}
}

碰撞检测 Unity实验代码相关推荐

  1. unity 实验演示 教程_铁匠常见问题解答和Unity演示团队

    unity 实验演示 教程 Since showing our short film The Blacksmith at GDC 2015 in March, we've received many ...

  2. TSP问题由标准格式转成简单格式(我的实验代码需要的格式)

    为什么80%的码农都做不了架构师?>>>    最近从网上收集tsp问题实例,因为网上的格式较为复杂,于是进行了一些小的转换.从而成为简单的格式,用于我的实验代码输入.我的代码需要的 ...

  3. Ch2r_ood_understanding 本文档为论文限定领域口语对话系统中超出领域话语的对话行为识别的部分实验代码。代码基于Python,需要用到的外部库有: Keras(搭建神经网络) S

    Ch2r_ood_understanding 本文档为论文限定领域口语对话系统中超出领域话语的对话行为识别的部分实验代码.代码基于Python,需要用到的外部库有: Keras(搭建神经网络) Sci ...

  4. java数据结构实验一顺序表,java数据结构实验代码之升序顺序表

    java数据结构实验代码之升序顺序表 数据结构实验报告 学院:管理学院 班级:13电子商务(1)班 姓名:廖秋君 学号:3213004779 2014年 10月 23 日 目录 一.需求分析----- ...

  5. python程序开发正则表达式_python正则表达式的使用(实验代码)

    正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python ...

  6. java实验报告合肥工业大学_合肥工业大学数据结构上机实验代码与实验报告(全)github地址...

    C++实现链队类--合肥工业大学数据结构实验5:链式队列 实验5 5.1 实验目的 熟练掌握队列的顺序链式存储结构. 熟练掌握队列的有关算法设计,并在链队列上实现. 根据具体给定的需求,合理设计并实现 ...

  7. 贪心算法 0-1背包c语言,贪心算法0-1背包问题(算法实验代码).pdf

    . 实验三. 0-1 背包问题(贪心算法) 实验代码: #include int max(int a,int b) { if(a>b) return a; else return b; } vo ...

  8. python正则表达式代码_python正则表达式的使用(实验代码)

    正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式. re 模块使 Python ...

  9. Unity 之 代码获取IOS设备型号 -- 做分辨率适配

    Unity 之 代码获取IOS设备型号 一,通过机器型号校验 1.1 逻辑解释 1.2 实现代码 二,通过长宽比校验 一,通过机器型号校验 1.1 逻辑解释 在https://www.theiphon ...

最新文章

  1. 大数据读书笔记(1)
  2. 【SSL】openssl 提取 PKCS 证书库中的公钥、私钥、证书、密钥、CA证书
  3. java hotswap_DCEVM+HotSwapAgent实现java类热加载
  4. mysql 批量加索引_mysql优化:按期删数据 + 批量insert + 字符串加索引为何很傻
  5. leetcode15 三数之和
  6. itext替换pdf中的中文
  7. linux 指定cpu运行线程,linux 线程与CPU绑定
  8. 【语法】NSFileManager 文件目录操作
  9. python判断英文字母_python判断字符串是否包含字母
  10. VMware vSphere 7 vCenter 7 ESXi 7 正式版 免费下载
  11. unity商店的Standard Assets自带人物移动插件的bug修改
  12. 学习《恋上数据结构与算法》目录索引 (持续更新中)
  13. 关闭浏览器自动退出账号
  14. 【kafka】Flink消费kafka Error sending fetch request
  15. LeetCode--441--排列硬币
  16. Linux 磁盘分区(MBR和GPT,loop详细分区方法介绍)
  17. IJ下的JavaWeb的搭建
  18. 软件和硬件的质量曲线
  19. 大衣哥唱火的《火火的情怀》,和合国际会100万向孟文豪收购吗
  20. ATJ2157ATJ2127音乐按文件名拼音排序---标案是按内码进行排序

热门文章

  1. 工业X射线胶片的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  2. python和excel数据分析_利用Python处理和分析Excel表中数据实战
  3. 2022黑龙江最新建筑八大员(土建)模拟考试题库及答案
  4. 看视频常见的 720p、1080p、4k,这些分辨率到底包含了什么
  5. Pop Sequence
  6. 翻译:监控生产中的机器学习模型
  7. nc 自开节点做参照_NC57,NC63-NC二开经验总结
  8. 带小数的String转整数Integer
  9. 《设计模式之禅》总结
  10. 利用前三年的数据预测2018年NBA常规赛东西部前八的详细过程和解决思路(19年类似)