unity添加风吹树叶掉落的效果
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了unity添加风吹树叶掉落的效果相关的知识,希望对你有一定的参考价值。
参考技术A 1、首先在层级视图创建一个粒子系统,调整的X轴的旋转是90度,使粒子系统是朝下播放的。2、选择粒子的大小的方式是约束在两个数值之间的随机值。
3、设置粒子的大小在0。5-2之间。
4、勾选开启3D旋转,设置旋转的方式是约束在两个数值之间的随机值。
5、设置旋转的值都是0-360。
6、调整粒子发射的速率。
7、设置粒子发射的形状为Cone,并把角度设置为0(目的是使发射方向是垂直向下)设置半径为15。
8、勾选设置生命旋转周期(RotationOverLifetime),勾选Separate,设置值类型为(RandomBetweenTwoConstants)。
9设置生命旋转周期的各个轴的值为:80-200。
10、创建一个树叶材质。把该材质赋值给粒子系统。
11、这时,就可以在场景看到以下效果。
12、给场景创建一个地面,并创建一个材质,把这个材质赋值到地面上。
13、接下来设置树叶碰到地面会自动消失的效果。
14、在场景创建一个风区,让树叶受到风的作用力而影响树叶的飘落效果。
15、设置粒子接受风区的影响。
16、由于当前的风只能是一个方向的风,可以通过脚本设置风区的旋转,得到不同方向的风。
福利手游APP下载
新增小号回收账号交易
¥免费分享
手游代理加盟,主推游戏分成70%左右
低投入,分成高
¥198
手游加盟代理自助注册页面
入行手游项目必看教程
¥198
新自由之刃(赤月服)
满攻速魂环版传奇
¥1.76复古
绝世仙王之八荒寻仙录
超高人气仙侠手游
¥无折扣返利
自由之刃2(新)
冰龙魂环复古经典
¥新版复古传奇
查
看
更
多
- 官方电话官方服务
- 官方网站福利app代理申请
Unity2D学习笔记Day15:角色下蹲+掉落死亡+切换场景
学习资源:B站 M_Studio《Unity教程2D入门》20-21
Unity Assets:Sunnyland
Day15
更正:Time.fixedDeltaTime
让角色移动和跳跃时更加流畅,如果是用FixedUpdate函数,应该相对应选择
Time.fixedDeltaTime。
1. 增加Crouch(下蹲)效果
为节省时间,这里就不添加这个实际效果。但理解一下其中的思路和方法。
在Input中没有Crouch,如何添加?
右键,复制某一项,然后修改其中的参数即可。
下蹲时碰撞体不变,怎么办?
观察游戏运行时的碰撞体,发现即使角色下蹲,碰撞体仍然保持原来的样子。也就是说角色下蹲后还是无法通过低处。
这里就是先前要用两个碰撞体的原因。
当角色下蹲后,应该让头部的box collider消失,起立后再让碰撞体出现。
注意
节点用setactive,组件用enabled。
disColl.enabled = false;
小技巧:如何在游戏运行时看见碰撞体?
点击右上角的Gizmos。
就可以看见属性面板中展开的部分,在Scene中的效果。
如图,这里展开两个碰撞体的组件。
问题:下蹲钻到一半时站起,会被卡住。
思路:如果监测到上部有ground,就不能起立。
方法:选中靠近角色头顶的一个点作为基准点,画一个圈,判断ground是否在这个圈内。
Physics2D.OverlapCircle(Vector2 point,float radius,int layerMask):
Checks if a collider falls within a circular area
point:基准点
radius:判断范围
layerMask:要判断的图层
在这里插入代码片
小技巧:判断角色头顶的位置
给角色添加一个子节点celling,将它移至角色的头顶。
代码如下:
void Crouch(){
//当没有障碍物时
if(!Physics2D.OverlapCircle(Celling.position,0.2f,ground))
{
if(Input.GetButton("Crouch"))
{
anim.SetBool("isCrouching",true);
disColl.enabled = false;
}
else
{
anim.SetBool("isCrouching",false);
disColl.enabled = true;
}
//控制角色下蹲
}
}
2. 角色掉落死亡
教程里面还使用了trigger碰撞体,但我觉得用y坐标来判断即可。
当角色小于某一y坐标,触发死亡。
我用了一个public变量来设置死亡边界。
public float deadLiney = -7.0f;
游戏重置
using UnityEngine.SceneManagement;
重启当前场景。
update中:
if(transform.position.y < deadLiney)
{
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}
制作delay效果
延迟2s后启动。
将上述代码重新写为一个函数。
void Restart()
{
SceneManager.LoadScene(SceneManager.GetActiveScene().name);
}
update中:
停止播放音乐
if(transform.position.y < deadLiney)
{
//将所有的音频都禁用
GetComponent<AudioSource>().enabled = false;
//延迟2s后重启
Invoke("Restart", 2f);
}
3.切换场景
- 使用场景名
SceneManager.LoadScene(“name”) - 使用场景编号
SceneManager.GetActiveScene().buildIndex
添加脚本EnterHouse:
void Update()
{
if(Input.GetKeyDown(KeyCode.E))
{
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
}
}
场景编号是什么?
在build setting中场景名后面的就是场景编号。
可以通过拖动来修改顺序。
将该脚本添加给Dialog,只有Dialog窗口启动时,按e才会触发场景切换。
(否则在游戏过程中如果误触了e就会触发场景切换!)
以上是关于unity添加风吹树叶掉落的效果的主要内容,如果未能解决你的问题,请参考以下文章