8.Unity2D 横版 视差滚动+背景无限+伪3D动态背景+前景遮挡

2024-02-08 12:10

本文主要是介绍8.Unity2D 横版 视差滚动+背景无限+伪3D动态背景+前景遮挡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

总目录https://blog.csdn.net/qq_54263076/category_11900070.html?spm=1001.2014.3001.5482

 效果图如下:

 

教学https://b23.tv/qF8e3sr

1.先在背景空物体下拖入所需要的空物体,并添加Sprite渲染器,将图片放入里面(也可以直接拖动精灵图作为背景空物体子物体,会自动完成渲染器添加)

注意调整好各个背景的遮盖关系

我的一些图层顺序排序

注意需要将这些子物体的绘制模式全改成平铺,这样修改它的宽度后会自动贴下一张图片。宽度要设置成大于本来宽度的三倍以上(如果不这样,在后面脚本完成的时候,当角色移动超过背景的时候会瞬间填充移动,宽度过小的时候移动会直接闪现在屏幕上,而我们需要在屏幕外刷新背景

 2.为各个子物体添加BgkControl脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class BgkControl : MonoBehaviour
{//摄像机private Transform cameraT;//前一帧摄像机位置private Vector3 lastCameraPoi;//后一帧摄像机位置//子物体移动倍速public Vector2 SpeedTime = new Vector2(1f,1f);//纹理图宽度private float textUnitSizex;//textUnitSizex// Start is called before the first frame updatevoid Start(){cameraT = Camera.main.transform;lastCameraPoi = cameraT.position;//获取纹理图及宽度Sprite sprite = transform.GetComponent<SpriteRenderer>().sprite;Texture2D texture = sprite.texture;textUnitSizex = texture.width / sprite.pixelsPerUnit;//纹理图宽度除像素宽度}// Update is called once per framevoid Update(){Vector3 delMovement = cameraT.position - lastCameraPoi;transform. position += new Vector3(delMovement.x * SpeedTime.x,delMovement.y* SpeedTime.y,0);lastCameraPoi = cameraT.position;//更新后一帧摄像机位置//背景图无限if (Mathf.Abs(cameraT.position.x - transform.position.x )> textUnitSizex){//偏移量float offsetPositionX = (cameraT.position.x - transform.position.x)%textUnitSizex;//移动背景图transform.position = new Vector3(cameraT.position.x+ offsetPositionX, transform.position.y);}}
}

为每个物体加好小本之后就可以在unity中每个物体下面脚本下面改成自己的x,y倍速。一般而言,远处物体的x倍速为0-0.2之间(云,雾),中间物体x倍速在0.2-0.4之间(山),近物体倍速在0.4-0.6之间(树木),前景物体(遮挡角色的背景)移动与摄像机移动方向相反,且距离最近x倍速在(-1.5到-2之间)。y倍速越远的物体越大,越近的物体越小,可以形成一种让上跳之后显现后面物体的效果(前景为负值)

这样就完成了!!!

下一篇

bnhe9.Unity2D 简单AI 之 敌人跳跃条件优化+自动范围内检测敌人发起攻击(索敌)+对象池优化+主角受伤死亡_ζั͡ ั͡雾 ั͡狼 ั͡✾的博客-CSDN博客Unity2D 简单AI 之 敌人跳跃条件优化+自动范围内检测敌人攻击+敌人二连击。在敌人预制体下,创建空物体EnemyCanAttack,改成不受攻击检测标签,加上触发器,加上触发器脚本。 在主角到该范围内,敌人开始攻击,加入脚本EnemyAttackBox。在1中已经增加了主角受伤动画,现在优化攻击判定的代码,使得敌人也可以使用脚本。。。......https://wulang.blog.csdn.net/article/details/125713329?spm=1001.2014.3001.5502Unity2D 简单AI 之 敌人跳跃条件优化+自动范围内检测敌人攻击+敌人二连击。在敌人预制体下,创建空物体EnemyCanAttack,改成不受攻击检测标签,加上触发器,加上触发器脚本。 在主角到该范围内,敌人开始攻击,加入脚本EnemyAttackBox。在1中已经增加了主角受伤动画,现在优化攻击判定的代码,使得敌人也可以使用脚本。。。......https://wulang.blog.csdn.net/article/details/125713329?spm=1001.2014.3001.5502Unity2D 简单AI 之 敌人跳跃条件优化+自动范围内检测敌人攻击+敌人二连击。在敌人预制体下,创建空物体EnemyCanAttack,改成不受攻击检测标签,加上触发器,加上触发器脚本。 在主角到该范围内,敌人开始攻击,加入脚本EnemyAttackBox。在1中已经增加了主角受伤动画,现在优化攻击判定的代码,使得敌人也可以使用脚本。。。......https://wulang.blog.csdn.net/article/details/125713329?spm=1001.2014.3001.5502Unity2D 简单AI 之 敌人跳跃条件优化+自动范围内检测敌人攻击+敌人二连击。在敌人预制体下,创建空物体EnemyCanAttack,改成不受攻击检测标签,加上触发器,加上触发器脚本。 在主角到该范围内,敌人开始攻击,加入脚本EnemyAttackBox。在1中已经增加了主角受伤动画,现在优化攻击判定的代码,使得敌人也可以使用脚本。。。......https://wulang.blog.csdn.net/article/details/125713329?spm=1001.2014.3001.5502Unity2D 简单AI 之 敌人跳跃条件优化+自动范围内检测敌人攻击+敌人二连击。在敌人预制体下,创建空物体EnemyCanAttack,改成不受攻击检测标签,加上触发器,加上触发器脚本。 在主角到该范围内,敌人开始攻击,加入脚本EnemyAttackBox。在1中已经增加了主角受伤动画,现在优化攻击判定的代码,使得敌人也可以使用脚本。。。......https://wulang.blog.csdn.net/article/details/125713329?spm=1001.2014.3001.5502Unity2D 简单AI 之 敌人跳跃条件优化+自动范围内检测敌人攻击+敌人二连击。在敌人预制体下,创建空物体EnemyCanAttack,改成不受攻击检测标签,加上触发器,加上触发器脚本。 在主角到该范围内,敌人开始攻击,加入脚本EnemyAttackBox。在1中已经增加了主角受伤动画,现在优化攻击判定的代码,使得敌人也可以使用脚本。。。......https://wulang.blog.csdn.net/article/details/125713329?spm=1001.2014.3001.5502Unity2D 简单AI 之 敌人跳跃条件优化+自动范围内检测敌人攻击+敌人二连击。在敌人预制体下,创建空物体EnemyCanAttack,改成不受攻击检测标签,加上触发器,加上触发器脚本。 在主角到该范围内,敌人开始攻击,加入脚本EnemyAttackBox。在1中已经增加了主角受伤动画,现在优化攻击判定的代码,使得敌人也可以使用脚本。。。......https://wulang.blog.csdn.net/article/details/125713329?spm=1001.2014.3001.5502Unity2D 简单AI 之 敌人跳跃条件优化+自动范围内检测敌人攻击+敌人二连击。在敌人预制体下,创建空物体EnemyCanAttack,改成不受攻击检测标签,加上触发器,加上触发器脚本。 在主角到该范围内,敌人开始攻击,加入脚本EnemyAttackBox。在1中已经增加了主角受伤动画,现在优化攻击判定的代码,使得敌人也可以使用脚本。。。......https://wulang.blog.csdn.net/article/details/125713329?spm=1001.2014.3001.5502Unity2D 简单AI 之 敌人跳跃条件优化+自动范围内检测敌人攻击+敌人二连击。在敌人预制体下,创建空物体EnemyCanAttack,改成不受攻击检测标签,加上触发器,加上触发器脚本。 在主角到该范围内,敌人开始攻击,加入脚本EnemyAttackBox。在1中已经增加了主角受伤动画,现在优化攻击判定的代码,使得敌人也可以使用脚本。。。......https://wulang.blog.csdn.net/article/details/125713329?spm=1001.2014.3001.5502Unity2D 简单AI 之 敌人跳跃条件优化+自动范围内检测敌人攻击+敌人二连击。在敌人预制体下,创建空物体EnemyCanAttack,改成不受攻击检测标签,加上触发器,加上触发器脚本。 在主角到该范围内,敌人开始攻击,加入脚本EnemyAttackBox。在1中已经增加了主角受伤动画,现在优化攻击判定的代码,使得敌人也可以使用脚本。。。......https://wulang.blog.csdn.net/article/details/125713329?spm=1001.2014.3001.5502Unity2D 简单AI 之 敌人跳跃条件优化+自动范围内检测敌人攻击+敌人二连击。在敌人预制体下,创建空物体EnemyCanAttack,改成不受攻击检测标签,加上触发器,加上触发器脚本。 在主角到该范围内,敌人开始攻击,加入脚本EnemyAttackBox。在1中已经增加了主角受伤动画,现在优化攻击判定的代码,使得敌人也可以使用脚本。。。......https://wulang.blog.csdn.net/article/details/125713329?spm=1001.2014.3001.5502

这篇关于8.Unity2D 横版 视差滚动+背景无限+伪3D动态背景+前景遮挡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/690993

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

第10章 中断和动态时钟显示

第10章 中断和动态时钟显示 从本章开始,按照书籍的划分,第10章开始就进入保护模式(Protected Mode)部分了,感觉从这里开始难度突然就增加了。 书中介绍了为什么有中断(Interrupt)的设计,中断的几种方式:外部硬件中断、内部中断和软中断。通过中断做了一个会走的时钟和屏幕上输入字符的程序。 我自己理解中断的一些作用: 为了更好的利用处理器的性能。协同快速和慢速设备一起工作

动态规划---打家劫舍

题目: 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。 思路: 动态规划五部曲: 1.确定dp数组及含义 dp数组是一维数组,dp[i]代表

代码随想录冲冲冲 Day39 动态规划Part7

198. 打家劫舍 dp数组的意义是在第i位的时候偷的最大钱数是多少 如果nums的size为0 总价值当然就是0 如果nums的size为1 总价值是nums[0] 遍历顺序就是从小到大遍历 之后是递推公式 对于dp[i]的最大价值来说有两种可能 1.偷第i个 那么最大价值就是dp[i-2]+nums[i] 2.不偷第i个 那么价值就是dp[i-1] 之后取这两个的最大值就是d

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室

LeetCode:64. 最大正方形 动态规划 时间复杂度O(nm)

64. 最大正方形 题目链接 题目描述 给定一个由 0 和 1 组成的二维矩阵,找出只包含 1 的最大正方形,并返回其面积。 示例1: 输入: 1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4 示例2: 输入: 0 1 1 0 01 1 1 1 11 1 1 1 11 1 1 1 1输出: 9 解题思路 这道题的思路是使用动态规划

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b

第49课 Scratch入门篇:骇客任务背景特效

骇客任务背景特效 故事背景:   骇客帝国特色背景在黑色中慢慢滚动着! 程序原理:  1 、 角色的设计技巧  2 、克隆体的应用及特效的使用 开始编程   1、使用 黑色的背景: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7d74c872f06b4d9fbc88aecee634b074.png#pic_center)   2