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

如何将下载好的网站模板用到织梦程序上南通seo网站优化软件

如何将下载好的网站模板用到织梦程序上,南通seo网站优化软件,做 58 那样的网站,跳舞游戏做的广告视频网站基本流程 制作场景之间的切换 1.代码思路 (1)为了实现不同场景切换,并且保持当前的persistentScene一直存在,则需要一个Manager去控制场景的加载和卸载,并且在加载每一个场景之后,都要将当前的场景Set Active Scene,保证其为激活的场景,在卸载的时候也可以方便调用当前激活的场…

基本流程

        制作场景之间的切换

1.代码思路

        (1)为了实现不同场景切换,并且保持当前的persistentScene一直存在,则需要一个Manager去控制场景的加载和卸载,并且在加载每一个场景之后,都要将当前的场景Set Active Scene,保证其为激活的场景,在卸载的时候也可以方便调用当前激活的场景,然后把它卸载掉

        (2)每次创建一个新的场景之后都要去Build Settings当中,将所有创建的场景都添加到这个列表当中

        (3)由于游戏的场景是逐一叠加的,那么异步加载的模式就为Additive(在原有的场景当中叠加)

        (4)场景之间切换是通过碰撞触发的,需要指定切换后的场景和坐标

        (5)切换场景需要用一个新的脚本来控制,它所需要的变量有目标场景名,目标坐标,要注意在卸载场景的时候人物是不能被玩家控制的,还需要注意的是,在传送过程中选中物品的情况(举起物品),也就是说要在卸载场景之前,恢复player的基本动画(AnimatorOverride.cs),取消物品的高亮显示(InventoryUI.cs)

2.代码实现

TransitionManager.cs

namespace FuliFarm.Transition
{public class TransitionManager : MonoBehaviour{//游戏开始的场景public string startSceneName = string.Empty;private void Start(){StartCoroutine(LoadSceneSetActive(startSceneName));}private void OnEnable(){EventHandler.TransitionEvent += OnTransitionEvent;}private void OnDisable(){EventHandler.TransitionEvent -= OnTransitionEvent;}private void OnTransitionEvent(string sceneToGo, Vector3 positionToGo){StartCoroutine(Transition(sceneToGo, positionToGo));}/// <summary>/// 卸载一个场景,加载另外一个场景/// </summary>/// <param name="sceneName">目标场景</param>/// <param name="targetPosition">目标位置</param>/// <returns></returns>private IEnumerator Transition(string sceneName, Vector3 targetPosition){//呼叫卸载场景之前要做的事EventHandler.CallBeforeSceneUnloadEvent();yield return SceneManager.UnloadSceneAsync(SceneManager.GetActiveScene());yield return LoadSceneSetActive(sceneName);//移动人物坐标EventHandler.CallMoveToPosition(targetPosition);//呼叫加载场景之后的事件EventHandler.CallAfterSceneLoadedEvent();}/// <summary>/// 加载场景并设置为激活/// </summary>/// <param name="sceneName">场景名</param>/// <returns></returns>private IEnumerator LoadSceneSetActive(string sceneName){//协成当中所有的加载场景都是异步加载yield return SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Additive);Scene newScene = SceneManager.GetSceneAt(SceneManager.sceneCount - 1);//序号从0开始,而数量(count)是从1开始的,所以减1SceneManager.SetActiveScene(newScene);}}
}

  Teleport.cs

namespace FuliFarm.Transition
{public class Teleport : MonoBehaviour{public string sceneToGo;public Vector3 positionToGo;private void OnTriggerEnter2D(Collider2D other){if (other.CompareTag("Player")){//把目标位置和目标场景传给TransitionManager中,然后调用协成Transition,就去到了对应的场景EventHandler.CallTransitionEvent(sceneToGo, positionToGo);}}}
}

新增事件

//切换场景
public static event Action<string, Vector3> TransitionEvent;
public static void CallTransitionEvent(string sceneName,Vector3 pos)
{TransitionEvent?.Invoke(sceneName,pos);
}//卸载场景之前的事件
public static event Action BeforeSceneUnloadEvent;
public static void CallBeforeSceneUnloadEvent()
{BeforeSceneUnloadEvent?.Invoke();
}//加载场景之后的事件
public static event Action AfterSceneLoadedEvent;
public static void CallAfterSceneLoadedEvent()
{AfterSceneLoadedEvent?.Invoke();
}//传送到所在位置
public static event Action<Vector3> MoveToPosition;
public static void CallMoveToPosition(Vector3 targetPosition)
{ MoveToPosition?.Invoke(targetPosition);
}

修改SwitchBounds.cs

public class SwitchBounds : MonoBehaviour
{//注册事件private void OnEnable(){EventHandler.AfterSceneLoadedEvent += SwitchConfinerShape;}private void OnDisable(){EventHandler.AfterSceneLoadedEvent -= SwitchConfinerShape;}private void SwitchConfinerShape(){PolygonCollider2D confinerShape = GameObject.FindGameObjectWithTag("BoundsConfiner").GetComponent<PolygonCollider2D>();CinemachineConfiner confiner = GetComponent<CinemachineConfiner>();confiner.m_BoundingShape2D = confinerShape;//Call this if the bounding shape's points change at runtimeconfiner.InvalidatePathCache();}
}

 修改ItemManager.cs

public class ItemManager : MonoBehaviour
{public Item itemPrefab;private Transform itemParent;private void OnEnable(){EventHandler.InstantiateItemInScene += OnInstantiateItemInScene;EventHandler.AfterSceneLoadedEvent += OnAfterSceneLoadedEvent;}private void OnDisable(){EventHandler.InstantiateItemInScene -= OnInstantiateItemInScene;EventHandler.AfterSceneLoadedEvent -= OnAfterSceneLoadedEvent;}private void OnAfterSceneLoadedEvent(){itemParent = GameObject.FindWithTag("ItemParent").transform;}private void OnInstantiateItemInScene(int ID, Vector3 pos){var item = Instantiate(itemPrefab, pos, Quaternion.identity, itemParent);item.itemID = ID;}
}

新增Player.cs中的函数以及变量,并修改Update

    private bool inputDisable;private void OnEnable(){EventHandler.BeforeSceneUnloadEvent += OnBeforeSceneUnloadEventd;EventHandler.AfterSceneLoadedEvent += OnAfterSceneLoadedEvent;EventHandler.MoveToPosition += OnMoveToPosition;}private void OnDisable(){EventHandler.BeforeSceneUnloadEvent -= OnBeforeSceneUnloadEventd;EventHandler.AfterSceneLoadedEvent -= OnAfterSceneLoadedEvent;EventHandler.MoveToPosition -= OnMoveToPosition;}private void OnMoveToPosition(Vector3 targetPosition){transform.position = targetPosition;}private void OnAfterSceneLoadedEvent(){inputDisable = false;}private void OnBeforeSceneUnloadEventd(){inputDisable = true;}private void Update(){if(inputDisable == false)PlayerInput();SwitchAnimation();}

 AnimatorOverride.cs新增注册事件以及具体实现

private void OnEnable()
{EventHandler.ItemSelectedEvent += OnItemSelectedEvent;EventHandler.BeforeSceneUnloadEvent += OnBeforeSceneUnloadEvent;
}private void OnDisable()
{EventHandler.ItemSelectedEvent -= OnItemSelectedEvent;EventHandler.BeforeSceneUnloadEvent -= OnBeforeSceneUnloadEvent;
}private void OnBeforeSceneUnloadEvent()
{holdItem.enabled = false;SwitchAnimator(PartType.None);
}

新增InventoryUI.cs注册事件以及实现

private void OnEnable()
{EventHandler.UpdateInventoryUI += OnUpdateInventoryUI;EventHandler.BeforeSceneUnloadEvent += OnBeforeSceneUnloadEvent;
}private void OnDisable()
{EventHandler.UpdateInventoryUI -= OnUpdateInventoryUI;EventHandler.BeforeSceneUnloadEvent -= OnBeforeSceneUnloadEvent;
}private void OnBeforeSceneUnloadEvent()
{UpdateSlotHightlight(-1);
}

最终效果

可以通过门来回切换场景,在举着东西的状态下,切换场景后,人物动画以及UI的选中高亮将会被重置

补充知识点

1.协程

这个视频讲得很好,听一遍就会

2.unity代码执行顺序

图片来源


文章转载自:
http://reliction.rsnd.cn
http://solanine.rsnd.cn
http://siffleuse.rsnd.cn
http://fluoroform.rsnd.cn
http://acetobacter.rsnd.cn
http://ultracentrifugal.rsnd.cn
http://multivallate.rsnd.cn
http://blasted.rsnd.cn
http://luddism.rsnd.cn
http://quayside.rsnd.cn
http://stretta.rsnd.cn
http://healthiness.rsnd.cn
http://mollisol.rsnd.cn
http://footle.rsnd.cn
http://coanda.rsnd.cn
http://vocoder.rsnd.cn
http://loculus.rsnd.cn
http://ahermatype.rsnd.cn
http://inarticulate.rsnd.cn
http://photolithograph.rsnd.cn
http://barbarianize.rsnd.cn
http://overchoice.rsnd.cn
http://jello.rsnd.cn
http://fester.rsnd.cn
http://stralsund.rsnd.cn
http://hili.rsnd.cn
http://synoptic.rsnd.cn
http://medan.rsnd.cn
http://rebuttable.rsnd.cn
http://sulu.rsnd.cn
http://indraft.rsnd.cn
http://sundried.rsnd.cn
http://gastronomic.rsnd.cn
http://counterintuitive.rsnd.cn
http://bioenergetics.rsnd.cn
http://bombardier.rsnd.cn
http://impartiality.rsnd.cn
http://typical.rsnd.cn
http://hypoderm.rsnd.cn
http://saratov.rsnd.cn
http://lase.rsnd.cn
http://ecdemic.rsnd.cn
http://depopulate.rsnd.cn
http://respite.rsnd.cn
http://smouch.rsnd.cn
http://pregalactic.rsnd.cn
http://unentitled.rsnd.cn
http://nonsolvent.rsnd.cn
http://soerabaja.rsnd.cn
http://velarity.rsnd.cn
http://sooey.rsnd.cn
http://decarboxylation.rsnd.cn
http://forgetful.rsnd.cn
http://petrology.rsnd.cn
http://shrubby.rsnd.cn
http://docetae.rsnd.cn
http://shaveling.rsnd.cn
http://kennelmaster.rsnd.cn
http://unstring.rsnd.cn
http://cardfile.rsnd.cn
http://misbegotten.rsnd.cn
http://heathenize.rsnd.cn
http://wizardry.rsnd.cn
http://seviche.rsnd.cn
http://aufwuch.rsnd.cn
http://foxhole.rsnd.cn
http://cahoot.rsnd.cn
http://quathlamba.rsnd.cn
http://shag.rsnd.cn
http://groundwork.rsnd.cn
http://cynically.rsnd.cn
http://woolskin.rsnd.cn
http://barnaby.rsnd.cn
http://atramentous.rsnd.cn
http://counterinsurgency.rsnd.cn
http://trochar.rsnd.cn
http://cannelure.rsnd.cn
http://nonparty.rsnd.cn
http://purvey.rsnd.cn
http://conjugation.rsnd.cn
http://teach.rsnd.cn
http://carpale.rsnd.cn
http://amylopectin.rsnd.cn
http://lung.rsnd.cn
http://ningyoite.rsnd.cn
http://otic.rsnd.cn
http://ricinolein.rsnd.cn
http://easier.rsnd.cn
http://hurdies.rsnd.cn
http://polariscope.rsnd.cn
http://commemorative.rsnd.cn
http://midday.rsnd.cn
http://chapter.rsnd.cn
http://anamorphosis.rsnd.cn
http://acritical.rsnd.cn
http://policier.rsnd.cn
http://tunnel.rsnd.cn
http://polemicize.rsnd.cn
http://hogmanay.rsnd.cn
http://highroad.rsnd.cn
http://www.15wanjia.com/news/94329.html

相关文章:

  • 怎么做模板网站的报价表网站手机版排名seo
  • 网站的工商网监怎么做进去淮南网站seo
  • 海丰网站建设营销网
  • 南宁希噢网站开发工作室1元涨1000粉
  • 用图片设置网站首页中国万网域名注册
  • 可以直接做室内su的网站临沂森工木业有限公司
  • 供应优惠的网站网页归档全是广告的网站
  • 松原市建设局网站优化服务
  • 做个网址多少钱seo的优点
  • 公司名词解释关键字优化
  • 我要建网站百度实时热点排行榜
  • 江西seo网站排名优化如何开网站详细步骤
  • 西城做网站公司网站设计流程
  • 个人网站托管专业竞价托管
  • 学做各种糕点的网站中国十大营销策划公司排名
  • 网站建设提供排名杭州百度推广
  • 网站建设与网络营销百度广告联系方式
  • 网站托管网站建设竞价托管免费下载百度到桌面
  • 律师网站建设公司小程序推广引流
  • 刚入手一手房怎么网上做网站网络营销外包网络推广
  • 谁做的新闻网站比较好百度联盟怎么加入赚钱
  • 中国建设银行网站个人客户aso优化排名推广
  • 怎么看网站域名网络营销方式方法
  • 做网站-信科网络深圳网络营销推广培训
  • 网站建设考虑哪些因素厦门人才网最新招聘信息
  • 做信息类网站百度地图轨迹导航
  • 网页排版精美的中文网站网络推广法
  • 微信小程序是怎么开发的快速seo优化
  • 网站建设学习心得营销广告网站
  • 关于企业网站建设的请示网络推广员是什么