当前位置: 首页 > news >正文

唐山建网站公司社交媒体平台

唐山建网站公司,社交媒体平台,吉林省建设厅网站首页,廊坊网站排名优化报价我开发的升降梯由三个部分组成#xff0c;反正适用于我的需求了#xff0c;其他人想复用到自己的项目的话#xff0c;不一定。写的也不是很好#xff0c;感觉搞的有点复杂啦。完全可以在优化一下#xff0c;项目赶工期#xff0c;就先这样吧。能用就行#xff0c;其他的…        我开发的升降梯由三个部分组成反正适用于我的需求了其他人想复用到自己的项目的话不一定。写的也不是很好感觉搞的有点复杂啦。完全可以在优化一下项目赶工期就先这样吧。能用就行其他的再说。 1.升降梯基类 using System.Collections; using System.Collections.Generic; using UnityEngine;public abstract class LiftObjCtrBase : MonoBehaviour {public float speed 5f; // 上升和下降的速度public LiftObjCtrBase targetObject; // 指定的物体高度[HideInInspector]public bool isRising false; // 是否正在上升[HideInInspector]public bool isFalling false; // 是否正在下降[HideInInspector]public bool isPlayerStay false; //玩家是否在上面[HideInInspector]public Vector3 initialPosition; // 初始位置[HideInInspector]public float offsetY 0;[HideInInspector]public Transform playerTra;[HideInInspector]public Transform targetTra;[HideInInspector]public float radius 0;// Start is called before the first frame update[HideInInspector]public bool isReach false;public virtual bool isTriggerEnter(Transform playerTra) {if (Vector3.Distance(gameObject.transform.position, playerTra.position) radius){return false;}else{return true;}}public virtual void startRising() {}}2.玩家接触到的头一个升降梯第一个升降梯的碰撞组件必须开启isTrigger属性注意所有升降梯都需要挂碰撞组件 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.TextCore.Text;public class LiftFirstObjCtr : LiftObjCtrBase {//private Transform player; // 角色private void Start(){initialPosition transform.position; // 记录初始位置targetTra targetObject.gameObject.transform;MeshCollider meshCollider gameObject.GetComponentMeshCollider();radius meshCollider.bounds.extents.magnitude;}private void Update(){if (targetObject null) return;if (playerTra ! null !isTriggerEnter(playerTra) !isFalling){isPlayerStay false;isFalling true;isRising false;}if (playerTra !null targetObject.isTriggerEnter(playerTra) !targetObject.isRising !targetObject.isReach){isPlayerStay false;isFalling true;targetObject.startRising();}if (isRising isPlayerStay){// 上升逻辑if (playerTra null || offsetY 0) return;transform.Translate(Vector3.up * speed * Time.deltaTime);playerTra.position new Vector3(playerTra.position.x, transform.position.y offsetY0.4f, playerTra.position.z);// 到达目标高度后开始下降if (transform.position.y targetTra.position.y){gameObject.GetComponentCollider().isTrigger false;isRising false;}}else if (isFalling !isPlayerStay){// 下降逻辑transform.Translate(Vector3.down * speed * Time.deltaTime);// 返回初始位置后停止下降if (transform.position.y initialPosition.y){transform.position initialPosition;isFalling false;gameObject.GetComponentCollider().isTrigger true;}}}private void OnTriggerEnter(UnityEngine.Collider other){if (other.gameObject.tag Player){Debug.Log(玩家撞到升降梯);}}public override bool isTriggerEnter(Transform playerTra) {// 检测角色是否在碰撞器范围内if (Vector3.Distance(gameObject.transform.position, playerTra.position) radius){return false;}else {return true;}}private void OnTriggerStay(UnityEngine.Collider other){if (other.gameObject.tag Player !isPlayerStay){if (Vector3.Distance(other.gameObject.transform.position, gameObject.transform.position) radius) {Debug.Log(玩家待在升降梯);isRising true;playerFollow(other.gameObject);gameObject.GetComponentCollider().isTrigger false;}}}private void OnTriggerExit(UnityEngine.Collider other){}private void playerFollow(GameObject player) {offsetY player.transform.position.y - transform.position.y;playerTra player.transform;isPlayerStay true;}public override void startRising(){} }3.中间的其他升降梯其他中间的升降梯由于是悬浮在空中的所以需要不能开启isTrigger属性否则玩家碰到后就会掉下去 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.TextCore.Text;public class LiftMiddleObjCtr : LiftObjCtrBase {public LiftObjCtrBase preLiftObj;// Update is called once per frameprivate void Start(){initialPosition transform.position; // 记录初始位置targetTra targetObject.transform;MeshCollider meshCollider gameObject.GetComponentMeshCollider();radius meshCollider.bounds.extents.magnitude;}void Update(){if (targetObject null) return;if (playerTra ! null !isTriggerEnter(playerTra) !isFalling){isPlayerStay false;isFalling true;isRising false;return;}if (playerTra ! null targetObject.isTriggerEnter(playerTra) !targetObject.isRising){isPlayerStay false;isFalling true;targetObject.startRising();playerTra null;}if (isRising isPlayerStay){// 上升逻辑if (playerTra null || offsetY 0) return;transform.Translate(Vector3.up * speed * Time.deltaTime);playerTra.position new Vector3(playerTra.position.x, transform.position.y offsetY 0.4f, playerTra.position.z);// 到达目标高度后开始下降if (transform.position.y targetTra.position.y){isRising false;isReach true;}}else if (isFalling !isPlayerStay){// 下降逻辑transform.Translate(Vector3.down * speed * Time.deltaTime);// 返回初始位置后停止下降if (transform.position.y initialPosition.y){transform.position initialPosition;isFalling false;isReach false;isRising false;}}}public override bool isTriggerEnter(Transform playerTra){if (Vector3.Distance(gameObject.transform.position, playerTra.position) radius){return false;}else{return true;}}public override void startRising() {isRising true;playerFollow(preLiftObj.playerTra.gameObject);gameObject.GetComponentCollider().isTrigger false;}private void playerFollow(GameObject player){offsetY player.transform.position.y - transform.position.y;playerTra player.transform;isPlayerStay true;} }4.最后一个升降梯是玩家最终达到的升降梯所以可以不用升降他是出发倒数第二个升降梯的下降感觉有点奇怪反正整个组件都开发的感觉奇奇怪怪的算了算了咱也没啥要求混口饭吃能较差就行 using System.Collections; using System.Collections.Generic; using UnityEngine;public class LiftLastObjCtr : LiftObjCtrBase {// Start is called before the first frame updatepublic LiftMiddleObjCtr middleObject;public override bool isTriggerEnter(Transform playerTra){return false;}public override void startRising(){}// Update is called once per framevoid Update(){if (middleObject ! null middleObject.playerTra ! null) {if (Vector3.Distance(middleObject.playerTra.position,gameObject.transform.position) 1) {if (Vector3.Distance(middleObject.playerTra.position, middleObject.gameObject.transform.position) 1){middleObject.isFalling true;middleObject.isPlayerStay false;}}}}}
http://www.hkea.cn/news/14365161/

相关文章:

  • 设计品牌网站昆明市住房和城乡建设局网站
  • 关于《大学物理》网站资源建设的思路广州天河网站制作
  • 珠海网站建设科技公司wordpress 3.9.1 漏洞
  • 网站正在建设中 htmlt恤图案设计网站
  • 深圳英文网站建设专业公司湛江网站建设工作
  • 中国网络推广网站排名wordpress 原生 相册
  • 建站做网站google play应用商店
  • 天津宁河区建设网站注册账号自建网站
  • 成都建站wordpress修改前缀
  • 多大的服务器可以做视频网站无限时间看片视频
  • 公司门户网站源码seo的作用主要有
  • 菜鸟教程网站建设新北做网站
  • 房产网站制作方案网站基础功能介绍
  • 织梦网站安装播放视频插件下载php网站开发图文教程
  • 保健品网站建设方案书模板有哪些学做衣服的网站有哪些
  • 莱芜做网站优化学校网站模板设计
  • 网站上常用的字体网络架构相关文献
  • 模板建站符合哪些工作需求?wordpress可视编辑器
  • 禅城网站建设网站多语言 设计
  • 商务网站开发背景wordpress教程 pdf下载
  • 设计师网站模版网站推广公司排行榜
  • 北京网站首页排名公司手机在线建站
  • 由一个网页建成的网站国内十大网站建设公司排名
  • 中国免费建设网站网址郴州新网招聘
  • 优质网站建设制作设计颜色搭配网站
  • 打开网站弹出qq对话框缓存图片 wordpress
  • 网站优化顺义案例电子商务网站建设职业技能目标
  • 黑人做爰视频免费网站做网站销售提成怎么算
  • 个人网站网页模板网站建设费用应按几年摊销
  • 网站建设下载小程序制作联系方式怎么添加