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

网站开发公司宣传语一键生成网站

网站开发公司宣传语,一键生成网站,做网站需要找人优化吗,wordpress调用 别的网站我开发的升降梯由三个部分组成,反正适用于我的需求了,其他人想复用到自己的项目的话,不一定。写的也不是很好,感觉搞的有点复杂啦。完全可以在优化一下,项目赶工期,就先这样吧。能用就行,其他的…

        我开发的升降梯由三个部分组成,反正适用于我的需求了,其他人想复用到自己的项目的话,不一定。写的也不是很好,感觉搞的有点复杂啦。完全可以在优化一下,项目赶工期,就先这样吧。能用就行,其他的再说。

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.GetComponent<MeshCollider>();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+ offsetY+0.4f, playerTra.position.z);// 到达目标高度后开始下降if (transform.position.y >= targetTra.position.y){gameObject.GetComponent<Collider>().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.GetComponent<Collider>().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.GetComponent<Collider>().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.GetComponent<MeshCollider>();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.GetComponent<Collider>().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.khdw.cn/news/26312.html

相关文章:

  • 应该怎样做网站地图百度官方客服电话
  • 自学网站建设买什么书宁波关键词优化排名工具
  • 做网站js还是jq关键词生成器在线
  • 推百拉兰州模板网站seo价格
  • 做网站最好软件游戏推广是干什么的
  • 云盘做网站空间谷歌优化
  • 网站上的动效是用ae做的网站制作公司有哪些
  • 徐汇区网站建设百度站长收录入口
  • 哪个网站是免费建站深圳网站seo优化公司
  • 建立个人网站费用市场营销方案怎么写
  • wordpress如何在底部设置备案千度seo
  • 亚马逊网站设计的真难用域名查询注册信息查询
  • 做动画的网站有哪些网页制作软件推荐
  • 广西住房和城乡建设厅培训中心官方网站海外推广营销平台
  • 中国上市公司前100名系统优化工具
  • 百度BCH发布wordpress海淀区seo搜索优化
  • 高端网站建设设计公司长沙seo霸屏
  • 网站文件验证有没有专门做策划的公司
  • p2p网站的建设电子商务与网络营销题库
  • 网站服务器崩溃网页搜索引擎大全
  • 建设推广站网站方案加强服务保障满足群众急需i
  • 有那些做任务的网站雅虎搜索引擎中文版
  • 软件开发网站模板百度网址大全网站大全
  • 一台独立服务器如何做多个网站尚硅谷培训机构官网
  • 我想克隆个网站 怎么做免费信息发布平台网站
  • 东莞网站设计风格app拉新任务平台
  • 怎么建设在线视频网站千锋培训机构官网
  • 挂机宝做网站可以吗百度平台投诉人工电话
  • 《动态网站建设》第02章在线测试企业网站有哪些类型
  • 做网赌网站游戏推广员骗局