unity学习笔记

一、射线检测

如何让鼠标点击某个位置,游戏角色就能移动到该位置?

实现的原理分析:我们能看见游戏的东西就是摄像机拍摄到的东西,所以摄像机的镜平面就是当前能看到的了。

unity学习笔记_第1张图片

那接下来我们可以让摄像机发射一条射线,鼠标点击哪个位置就打在哪个位置,这样就可以通过射线来获取点击的位置。

创建射线的方式
Ray ray = new Ray(Vector3.zero, Vector3.up);

第一个参数:origin(起始点): 射线的起始点,即射线从哪个点开始。在这个例子中,Vector3.zero 表示射线的起始点是三维空间中的原点 (0, 0, 0)

第二个参数:direction(方向): 射线的方向,即射线沿着哪个方向延伸。在这个例子中,Vector3.up 表示射线向上延伸。
Ray  ray = Camera.main.ScreenPointToRay(Input.mousePosition);

参数表示:Input.mousePosition 表示当前鼠标的屏幕坐标,ScreenPointToRay 将这个屏幕坐标转换为一条从摄像机位置发射的射线。

现在来实现获取到鼠标点击的坐标
void Update()
    {
        //方式2
        if (UnityEngine.Input.GetMouseButtonDown(0))
        {
            //按下鼠标左键发射射线
            Ray ray = Camera.main.ScreenPointToRay(UnityEngine.Input.mousePosition);
            // 声明一个碰撞信息类,被点击的游戏物体上必须有碰撞器存在。
            RaycastHit hit;
            //碰撞检测
            bool res = Physics.Raycast(ray, out hit);
            //如果碰撞到的情况下,hit就有内容了
            if (res == true)
            {
                Debug.Log(hit.point);
                transform.position = hit.point;
            }

        }
    }

这样就实现了鼠标点击哪个位置就移动到哪个位置。

二、粒子系统

Unity中的粒子系统是一种强大的工具,用于模拟和渲染大量的小粒子,如火花、烟雾、雨滴等效果。

创建方式:右键→新建→效果→粒子系统。

unity学习笔记_第2张图片

1.粒子系统的基本组成部分:
Emitter(发射器)︰定义了粒子的发射方式,包括发射速度、方向、形状等。一个粒子系统可以有多个发射器。
Particle(粒子)︰粒子是粒子系统中的基本元素,它们在场景中移动和改变外观。每个粒子都有自己的寿命、颜色、大小等属性。
Module(模块)︰模块是粒子系统的可配置部分,用于定义粒子的各种属性和行为

2.Unity粒子系统的常用模块:

发射器模块(Emitter Module):控制粒子的发射方式,包括发射速度、方向、形状等。

主模块(Main Module) :定义了整个粒子系统的主要属性,如开始速度、开始颜色、生命周期等。

颜色过渡模块(Color over Lifetime Module) :控制粒子的颜色随时间变化。

大小过渡模块(Size over Lifetime Module) :控制粒子的大小随时间变化。

速度过渡模块(Velocity over Lifetime Module) :控制粒子的速度随时间变化。

旋转过渡模块((Rotation over Lifetime Module) :控制粒子的旋转随时间变化。

外部力模块(External Forces Module) :允许外部力对粒子系统产生影响,如风力重力等。

示例:做一个火焰效果。

将渲染器的材质改为火焰

将起始生命周期改为1.

将随单位时间产生的粒子数改为50

将形状中的角度修改为0,半径改为0.1。

将生命周期内大小改为从大到小。

unity学习笔记_第3张图片        

将生命周期内颜色改为最开始改为红色末尾改为黄色。

unity学习笔记_第4张图片

最后效果:

unity学习笔记_第5张图片

你可能感兴趣的:(unity,学习,笔记)