精华内容
下载资源
问答
  • unity2d相机跟随人物

    千次阅读 2021-11-11 20:46:15
    clamp是Unity中限制轴向移动范围的函数 在游戏中,为了限制玩家的某一轴向的移动不超过一定的范围,我们可以用Mathf.Clamp来解决 Mathf.Clamp(float value,float min,float max) 在 Mathf.Clamp 中传入三个参数:value,...

    Mathf的clamp

    clamp是Unity中限制轴向移动范围的函数

    在游戏中,为了限制玩家的某一轴向的移动不超过一定的范围,我们可以用Mathf.Clamp来解决

    Mathf.Clamp(float value,float min,float max)

    在 Mathf.Clamp 中传入三个参数:value,min,max

    限制 value的值在min,max之间,如果value大于max,则返回max,如果value小于min,则返回min,否者返回value;

    lerp

    public static Vector3 Lerp (Vector3 a, Vector3 b, float t);
    参数
    a 起始值,当 t = 0 时返回。
    b 结束值,当 t = 1 时返回。
    t 用于在 a 和 b 之间进行插值的值。
    返回
    Vector3 插值,等于 a + (b - a) * t。

    描述
    在两个点之间进行线性插值。

    使用插值 t 在点 a 和 b 之间进行插值。参数 t 限制在范围 [0, 1] 内。这最常用于查找占两个终端之间距离特定百分比的点(例如,以便在这些点之间逐步移动对象)。

    返回的值等于 a + (b - a) * t(也可以写作 a * (1-t) + b*t)。
    当 t = 0 时,Vector3.Lerp(a, b, t) 返回 /a/。
    当 t = 1 时,Vector3.Lerp(a, b, t) 返回 /b/。
    当 t = 0.5 时,Vector3.Lerp(a, b, t) 返回 a 和 b 中间的点。

    Transform.position = Vector3.Lerp(transform.position.x, targetPosition, Time.deltaTime);//能看起来像匀速移动
    
    

    代码实现跟随

    首先创建一个C#脚本,接着创建一个空物体,并将脚本挂在空物体,且将相机作为其子物体。

    其原理是将摄像机固定在一定范围,并且利用Lerp函数进行跟随目标移动
    ,拖拽需要跟随的目标,并且进行范围设定,此处范围限制可根据具体情况进行设定。如上即可代码实现摄像机跟随

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class camerafollow : MonoBehaviour
    {
        public Transform player;
        //[SerializeField]
        //public float smooth;
        // Start is called before the first frame update
        void Start()
        {
           player = GameObject.Find("knight").GetComponent<Transform>();
        }
    
        // Update is called once per frame
        void Update()
        {
            //写法一
            transform.position = new Vector3(player.position.x, player.position.y, transform.position.z);
            //写法二
    
            //Vector2 camerafollow = player.position;
            //transform.position = Vector2.Lerp(transform.position, camerafollow, smooth);
        }
    }
    
    

    方法二

    一(不推荐)
    把摄像机挂在player下面(太low了)

    在pack manger添加cinermachine;
    之后在cineramachine添加2d摄像机,把player拖到VM vcam1即可

    展开全文
  • Unity2D】如何制作一个炮台追踪主角发射子弹@[TOC](【Unity2D】如何制作一个炮台追踪主角发射子弹)一、前言(一)、制作想法来源(二)、效果预览二、制作流程(一)、准备(二)、炮台的旋转(三)、炮台的检测和...

    一、前言

    (一)、制作想法来源

    前段时间为期末考试写了一篇博客,其中涉及到一个发射子弹击中主角的效果,由此想到了去制作一个发射子弹的炮台,其中考试的博客原文链接:点我跳转

    (二)、效果预览

    在这里插入图片描述

    二、制作流程

    (一)、准备

    1.炮台素材,我为了简单,自己用PS做了一个炮台图片,就两张图片,PS导出格式为PNG,在Unity中注意如果不是PNG格式的,记得改为PNG格式
    在这里插入图片描述在这里插入图片描述

    当然你也可以在Unity里面创建image图片来拼接一个炮台,再修改其颜色,注意2D游戏里面层级要保持一致:在这里插入图片描述

    (二)、炮台的旋转

    1.将炮台在2D场景中摆放好,调整好相关的层级,将炮台的Order in Layer设置为4,炮台地的Order in Layer设置为3,让炮台显示在炮台地上在这里插入图片描述

    在这里插入图片描述
    2.调整炮台的中心,使图片中心在炮台的正方形的中心,我们在文件夹下找到炮台,点击Sprite Editor对其进行编辑来调整其中心点的位置,因为炮台的旋转是以正方形的中心为中心的,当然Pivot也能够修改图片的中心,但是修改的位置比较固定,所以我们用Sprite Editor来编辑。
    在这里插入图片描述
    打开Sprite Editor,将图片中心用鼠标移动到小正方的中心,然后Apply应用一下在这里插入图片描述
    这样我们回到场景中,通过旋转炮台我们可以发现,炮台的旋转已经是按小正方形的中心来旋转了
    在这里插入图片描述
    2.我们实现让炮台随着目标转动起来,这里我已经做好了一个2D人物,并且能够让他移动,可以在我的博客主页找到这个案例文章,在这里我也将案例链接给大家:点我跳转
    接下来我们为炮台写一个旋转代码,来让炮台指向目标角色,点击炮台,为它添加一个脚本,我的脚本名称为:BigGun

     public GameObject Player;
    
        void Update()
        {
            Vector2 direction = Player.transform.position - transform.position;
            float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
            //这里还可以使用 Quaternion.Lerp来实现平滑旋转
            transform.rotation = Quaternion.AngleAxis(angle-90f, Vector3.forward);
            //参数里面的angle-90 减不减因人而异 因为我导入的图片的他的轴向不对
        }
    

    来解释一下为什么这么写,也就是这个的原理:
    1.我们首先要知道炮台和人物之间的坐标位置,得出其横纵的差距,通过其横纵的距离来计算一个角度,也就是tan值,画个图吧:
    在这里插入图片描述
    2.其次我们知道tanα之后,要将其转换为角度,涉及到数学知识为:

    在代码中的表示:
    在这里插入图片描述
    再者我们要知道Mathf.Atan2函数的意思,在这里我查了一下官方的API:
    在这里插入图片描述
    找到了一个比较详细的解释这个函数的博客:点我跳转

    我的理解是: Mathf.Atan2(direction.y, direction.x)将direction.y与 direction.x的角度计算出来,其结果为一个弧度值
    角度=弧度×360/2π,代码表示就是:

     float angle = Mathf.Atan2(direction.y, direction.x) * Mathf.Rad2Deg;
    

    3.再将得到的角度来作为旋转参数来实现旋转,使用函数的API
    在这里插入图片描述
    相关代码:

     transform.rotation = Quaternion.AngleAxis(angle-90f, Vector3.forward); //transform.rotation等于挂载脚本的位置
    

    最后说明一下:

     transform.rotation = Quaternion.AngleAxis(angle-90f, Vector3.forward);
            //参数里面的angle-90 减不减因人而异 因为我导入的图片的他的轴向不对
    

    如果我不减去90:
    在这里插入图片描述
    减去90后:
    在这里插入图片描述
    这个是跟导入图片时他的轴向有关,具体的你自己做的时候来看,然后将目标角色拖拽给脚本的Player中
    在这里插入图片描述

    (三)、炮台的检测和发射子弹

    1.为炮台加上一个圆形2D碰撞检测器,并调整其大小到一定的范围
    在这里插入图片描述
    2.接下来我们来制作子弹,要知道子弹的发射它是需要rigidbody组件和collider 2D组件的,把导入的子弹图标拖动到场景中,为其添加rigidbody和collider 2D,同时设置他的层级到合适的位置
    在这里插入图片描述
    接下来为子弹写一个代码,我命名为Gunbullet

    
        private Rigidbody2D rigidbody;
    
        void Awake()
        {
            rigidbody = this.GetComponent<Rigidbody2D>(); //获取这个脚本的rigidbody 2D
        }
    
        private void Start()
        {
            Destroy(gameObject, 5); //五秒后摧毁这个物体
        }
    
        public void Lauch(Vector2 direction, float force)
        {
            rigidbody.AddForce(direction * force);  //direction是一个矢量
    
        }
    

    在这里面有一个比较值得注意的是AddForce这个函数,其相关API为:
    在这里插入图片描述
    注意一定要是矢量,在这里我对其研究了下,相关的文章链接:点我跳转
    在其最下面:在这里插入图片描述
    在这里不作过多说明。
    3.将其拖拽在文件夹下制作成为预制体:
    在这里插入图片描述
    4.为炮台添加代码(在这之前记得加圆形碰撞盒子 2D):

        public GameObject Aim;
        public GameObject BulletPrefab;
        public float N = 50;
       // public Rigidbody2D RubyRigidbody2D;
        bool isAttack = false; //模式1触发
    
        private Vector2 PlayerVect;
        private Vector2 AttackVect;
    
        float time = 0;
        void Update()
        {
            PlayerVect.x = Aim.transform.position.x;
            PlayerVect.y = Aim.transform.position.y;
            AttackVect.x = PlayerVect.x - this.transform.position.x; //两坐标相减 得出一个向量 表示方向
            AttackVect.y = PlayerVect.y - this.transform.position.y; //两坐标相减 得出一个向量 表示方向
    
            if (isAttack)
            {
                time = time + Time.deltaTime;
                if (time >= 0.25)
                {
                    Launch();
                    time = 0;
                }
            }
        }
    
        private void Launch()
        {
            GameObject bullet = Instantiate(BulletPrefab, transform.position, Quaternion.identity);  //Quaternion.identity 没有角度 (0,0,0)
            bullet.GetComponent<GunBulllet>().Lauch(AttackVect, N); //我的子弹上绑上的脚本是GunBullet
            //这里如果报错 你看看你的脚本名称是否和我的不一样 写自己脚本的名称
        }
    
        private void OnTriggerEnter2D(Collider2D collision)
        {
            if (collision.tag == "Player")
            {
                isAttack = true;
            }
        }
    
        private void OnTriggerExit2D(Collider2D collision)
        {
            if (collision.tag == "Player")
            {
                isAttack = false;
            }
        }
    

    记得将发射口和子弹的collider 2D的is trigger勾上,不然无法触发检测:
    在这里插入图片描述在这里插入图片描述
    5.将目标角色的标签更改为Player,没有的话就自己添加
    在这里插入图片描述
    注意:如果你子弹射不出来,可能是因为力太小了,子弹上的rigidbody2D的重力太重了,导致了射不出去,想想丢铅球就明白了

    (三)、最后效果图

    在这里插入图片描述

    三、结束语

    1.如果你按着这篇案例做,发现按照我的步骤做不能够卓出来或者有错误,可以私信留言给我,我看到后会第一时间去解决
    2.点击我的主页,有很多的实用案例,欢迎来看看,对大多数人都是友好的:点我跳转
    3.人物移动的代码也在我的主页中,欢迎来看看

    喜欢的话点个赞支持一下吧~

    展开全文
  • Unity2D角色跳跃

    2021-01-26 17:07:03
    Unity2D角色跳跃 文章目录Unity2D角色跳跃思路事前准备通过速度判断状态通过位置判断状态 思路来自B站麦扣的第一期教程:https://www.bilibili.com/video/BV1z4411o7W4 思路 跳跃的动作可以拆分为两个动作,即上升...

    Unity2D角色跳跃


    思路来自B站麦扣的第一期教程:https://www.bilibili.com/video/BV1z4411o7W4

    思路

    跳跃的动作可以拆分为两个动作,即上升动作和下落动作。

    玩家可以在站立过程中起跳,也可以在移动过程中起跳。所以在动画控制器中,待机和移动都可以起跳,转变为上升状态,而下落状态则只能通过上升状态过渡。当玩家角色下落至地面时,应该由下落状态转变为待机,当然也可以转变为移动。

    事前准备

    public Rigidbody2D rb = GetComponent<RigidBody2D>(); // 获取物体的刚体
    public CircleCollider2D cirColl = GetComponent<CircleCollider2D>(); // 获取圆形碰撞体
    public Animator anim = GetComponent<Animator>(); // 获取动画控制器
    public LayerMask floor; // 获取图层,这个建议自己到Inspector中选
    public float jumpForce; // 起跳时的速度
    

    请在你的角色的Game Object添加这些Component。

    你需要有四个Anim文件,我的命名为StandAnim,RunAnim,UpAnim,DownAnim。分别对应待机动画,移动动画,上升动画和下落动画。

    通过速度判断状态

    先配置一下Animator:

    创建一个float类型的Parameter命名为velocity

    1. StandAnim和RunAnim到UpAnim的Transition:velocity 大于 0
    2. UpAnim到DownAnim的Transition : velocity 小于0
    3. DownAnim到StandAnim的Transition : velocity 大于 -0.1; velocity 小于0.1

    要实现跳跃,先要对角色的位置进行判定,如果在地面上则能够进行跳跃,如果不在地面上则不能进行跳跃。二段跳的设置在此不作讨论。在Unity中,我们可以通过RigidBody来对碰撞进行检测,通过IsTouchingLayers来检测当前刚体是否与图层发生碰撞,这个方法返回一个布尔值,发生碰撞返回true,不发生碰撞返回false。该方法的蚕食是一个LayerMask,指的是Inspector窗口中右上角的Layers,与Sorting Layers不同,Layers常用于碰撞检测,而Sorting Layers则控制物体在相机中的渲染层次。在创建LayerMask以后,通过GetMask方法来赋值,或者在Inspector中选择。

    // Checks whether this collider is touching any colliders on the specified layerMask or not
    bool Collider2D.IsTouchingLayers(int LayerMask)
    

    如果角色在地面上,当玩家按下跳跃按钮时,给角色一个向上的速度。要给角色添加一个速度或者说力有很多种方法,在这里我采用的是直接为RigidBody的Velocity赋值,在2D游戏中,rb.velocity是一个Vector2的对象,但在3D游戏中,是一个Vector3的对象。在跳跃时,保持x的速度不变,让y轴随时间进行变化。

    rb.velocity = new Vector2(rb.velocity.x, jumpForce*Time.deltaTime);
    

    velocity指的是刚体的速度,为正值时速度方向延坐标轴正方向,就是说如果velocity.y的值为正值,即y轴速度大于0,那么角色就会向上移动。角色在起跳时速度向上,为正值,下落时速度向下,就是负值。在Animator中我们在设置Animation之间的Transition时,可以通过这个方法来判断。当y轴的速度大于0时,动画从待机转换为上升;当y轴的速度小于0时,动画从上升转换为下降。

    这样就实现了从待机到上升再到下降的动画转换。但是在落地时角色会保持下降的动画而不会转换回待机。当角色在地上待机时y轴速度为0,我们可以设置当y轴速度为0时,动画从下落转换为待机。但是Animator的Condition并没有提供相等的判断,所以我选择的是大于-0.1,小于0.1,当y轴速度在这个区间内时,就切换动画。虽然角色在到达最高点时也会有一瞬间速度为0,但是Animator中上升是无法转换为待机的,所以不会出现在空中播放待机动画的场景。

    以下是实现跳跃的逻辑:

        void Jump()
        {
            anim.SetFloat("velocity", rb.velocity.y);// 监测角色的速度
            if (cirColl.IsTouchingLayers(floor))	// 判断角色是否在地面上,就是判断与tilemap的碰撞
            {
                if (Input.GetButtonDown("Jump") )	// 监听跳跃按钮
                {
                    rb.velocity = new Vector2(rb.velocity.x, jumpForce*Time.deltaTime);             
                }
            }
        }
    

    以上方法就实现了角色跳跃和动画的切换。但是有一个严重的缺陷,我们是通过y轴的速度来判断运动状态的,如果角色在斜坡上运动,y轴的速度也会变化。就会出现虽然是在上坡,但是动画却是上升的动画。要想避免这个问题,建议不使用速度作为判断标准。


    通过位置判断状态

    在Animator中创建三个布尔型参数,命名为up,down和stand。

    1. 在StandAnim和RunAnim到UpAnim的Transition中添加条件:当up是True时转换。
    2. 在UpAnim到DownAnim的Transition中添加条件:当down是True时转换。
    3. 在DownAnim到StandAnim的Transition中添加条件:当stand是True时转换。

    下面是在代码中实现的逻辑:

    1. 对角色位置进行判断,在地面则可以起跳,不在地面则不可以起跳。
    2. 当角色起跳时,将up的值设置为True,将stand的值设为false。
    3. 当y轴速度小于0时,将down的值设置为true,并把up值改为false。
    4. 当角色落到地面时,将stand的值设置为True,将down的值设为false。

    代码样例:

        void Jump()
        {
            if (cirColl.IsTouchingLayers(floor))
            {
                anim.SetBool("stand",true);
                anim.SetBool("down",false);
                if (Input.GetButtonDown("Jump") )
                {
                    rb.velocity = new Vector2(rb.velocity.x, jumpForce*Time.deltaTime);
                    anim.SetBool("up",true);
                    anim.SetBool("stand",false);
                }
            }
            else
            {
                if (rb.velocity.y<0)
                {                
                    anim.SetBool("down",true);
                    anim.SetBool("up", false);
                }
            }
        }
    

    因为从待机到上升,上升到下落,下落到待机,这三个过程都是单向的,所以可以通过三个bool类型的参数进行判断。这样就避免了由于y轴速度变化导致的动画转换出错。

    展开全文
  • Unity 2d物理材质

    2021-07-19 10:02:37
    Friciton:摩擦系数,为0无摩擦。 Bounciness:能量损失系数,为1无损失,即能量只在动能和势能之间转换。

    在这里插入图片描述
    Friciton:摩擦系数,为0无摩擦。
    Bounciness:弹性势能损失系数,为1无损失,什么东西都可以和皮球一样

    展开全文
  • Unity2D项目案例及素材

    千次阅读 2021-02-05 18:13:14
    Unity2D项目案例及素材 一、项目名称: 1、愤怒的小鸟(关卡模式) 2、疯狂捕鱼 3、吃豆人 4、贪吃蛇 5、坦克大作战 二、案例下载地址: Unity2D项目案例地址 开发过程可以去SiKi学院网站学习,传送门 开发...
  • Unity 2D Spine 外发光实现思路

    千次阅读 2021-11-07 19:40:55
    Unity 2D Spine 外发光实现思路 前言 对于3D骨骼,要做外发光可以之间通过向法线方向延申来实现。 但是对于2D骨骼,各顶点的法线没有向3D骨骼那样拥有垂直于面的特性,那我们如何做2D骨骼的外发光效果呢? 理论...
  • Unity 2D 混合树小例子

    2021-08-17 22:12:07
    首先大致介绍下几种Unity混合树:Blend Tree,可以有多种模式: 1. 1D混合:只有一个参数,即横坐标。纵坐标是动作权重,横轴上每一个点,对应的各动作权重之和为100%。每个动作分支有自己的100%权重点,即只播放...
  • unity2d+C#实现角色移动

    2021-09-08 17:34:57
    tankSprite存放四个方向的图片,数组内容可以在unity中拖入,记得先保存代码,否则unity的script组件中不会出现这个数组 if (h )//改变play的sprite 更换图片转向 { //左 sr.sprite = tankSprite[3]; } else if (h ...
  • Unity2D画节点和线段

    2021-04-10 14:53:31
    Unity2D画节点和线段资源的加载画节点画连线 资源的加载 在Assets文件夹下新建Resources文件夹,然后将2D对象(Circle,Square)放进去,这时候就能内部加载Resources了。 新建C#脚本 private GameObject ob_square...
  • Unity2d基础知识 众所周知,Unity是一个游戏引擎,就我的理解来说,游戏引擎就是封装了计算机底层的接口(如图形化接口),然后封装了一些游戏的常用功能(如获取用户的输入),然后提供了一个方面编辑游戏的图形化...
  • Unity2D碰撞无效问题和基本设置

    千次阅读 2021-02-23 10:43:06
    Unity2D碰撞无效问题和基本设置 最近开始学习unity,都是网站上找的一些白嫖的视频资源,然后也买了一些有关unity的比较新的书籍,这不论是视频还是书籍,讲述的内容主要讲的都是untiy3D,可能是因为unity2D功能是近...
  • 一.Unity2D 1.Rigidbody2D组件 (1)BodyType Dynamic 默认 Kinematic 不受运动学影响
  • Unity2D游戏有横轴游戏,也有横纵轴都有的游戏,本文主要使用动画器和混合树进行角色移动,并且在移动后角色将保持最后一个按键松开时候的方向,适合有一定...将准备好的Unity2D Sprite导入Unity.Player中,并将Spr.
  • Unity2d 背包功能实现

    2021-07-21 00:06:24
    一.GUI图形界面设置 -使用UI当中的Panel、Image、Text、Button等组件构建基本界面 -Button按键不用代码实现关闭setActive -Grid layout group的组件使用方法 -代码实现一个按键控制打开和关闭 ...
  • Unity2D修改Sprite颜色和透明度 简单注意原理在前边,后面是实现方法! 首先创建一个Sprite 最好选择纯白色的Sprite 选择的图片需要是白色的才会在修改颜色后有明显的显示,因为颜色修改后,它的最终显示是本来的...
  • 学习资源:B站 M_Studio《Unity教程2D入门》22 Unity Assets:Sunnyland Unity版本:2019.4.28f1c1(视频教程中是18的版本) Day16 使用相同的方法,可以给场景中的物品和角色添加光效。 全程不需要用到任何代码。 ...
  • unity2D制作一个2D游戏场景Tilemap

    千次阅读 2021-04-06 17:29:09
    今天使用了一下2020版本的unity。做一个2D的游戏场景。由于公司软件一直停留在5.X时代,很多新版本功能并没有用到。这次用了新版本,感觉发现了新大陆了。 目的:做一个2D的游戏场景。使用的是2020.3.0f1版本。 ...
  • 在制作demo的时候,想要给人物添加一个拖尾特效,然后unity刚好有配套的组件,赶紧去尝试了一下。结果就发生了两个问题。 使用Trail Render组件 使用Trail Render很简答,在你想要产生特效的物体下面新建一个空物体...
  • Unity2D光照 2DLight使用详细讲解

    千次阅读 2021-06-22 10:40:03
    #Unity2D光照详细讲解 首先我们需要知道unity的2d光照是在2019版本新增的功能 在2020里面是看不到的,而我们想要在2020版本里使用此功能则需要将我们的项目升级成URP项目 或者在创建项目的时候选择URP。 ##一、那么...
  • unity 2D 人物按钮控制移动 using System.Collections; using System.Collections.Generic; using UnityEngine; [RequireComponent(typeof(Animator))] public class CharacterControllerScript : MonoBehaviour...
  • 移动 1.获取左右移动信息 Input.GetAxis("Horizontal");//返回值为-1~1 Input.GetAxisRaw("Horizontal");//返回值为-1、0、1 2.修改刚体的velocity,如果是水平移动就修改x轴,相对应的,如果是前后移动就修改y...
  • 注:该文为学习笔记,具体请看b站upM-Studio的unity教程2D入门 环境:unity2020.3 暂停游戏 Time.timeScale=0f;//暂停 Time.timeScale=1f;//从新开始游戏 调节音量 四个部分:Slider——控制条,AudioSource...
  • 文章目录一、前言二、效果演示三、Demo工程下载四、操作步骤1、牙图片:SrpiteRenderer2、碎裂:Explodable3、多边形碰撞体组件:PolygonCollider2D4、生成碎片:Generate Fragments5、点击碎裂:ExplodeOnClick6、...
  • Unity2d 学习笔记(四)碰撞检测

    千次阅读 2021-10-12 09:31:18
    参考视频:Unity碰撞检测_哔哩哔哩_bilibili 首先,我们需要为想要进行碰撞检测的对象添加上图中绿色框中的两个组件,分别是 刚体2D以及盒子碰撞检测器。 其中盒子碰撞检测器中的触发按钮需要勾选。 当我们...
  • [Unity2D/笔记]切割2D角色动作 点击要切割的2D动漫角色的UI,在其Inspector面板上,找到Sprite Mode,正常情况下是Single,在这里我们把它修改为Multiple 点击Sprite Editor,可以发现有很多小方格,可以用来分割...
  • Unity 根据优先级顺序对渲染器进行排序,而优先级顺序取决于渲染器的类型和用途。可以通过渲染队列指定渲染器的渲染顺序。通常有两个主要队列:不透明队列和透明队列。2D 渲染器主要位于透明队列中,包括精灵渲染器 ...
  • 问题:Unity 2d-extras 导入失败 解决办法:不要下载2d-extras-master,转而下载对应unity版本的2d-extras 下载地址:https://github.com/Unity-Technologies/2d-extras 步骤1 步骤2 解压,将解压好的文件直接移入...
  • 链接:【Unity教程2D入门:01安装软件&导入素材-哔哩哔哩】https://b23.tv/uki44I 一、导入素材 通过package manager导入需要的素材或者通过Unity Store来导入SunnyLand 二、编辑素材 导入包之后,我们可以先把...
  • Unity 2D相机自适应

    2021-04-14 00:00:35
    ×100是因为Unity中的pixels per unit是100,×2是因为想设置成屏幕的一半 float designScale = designWidth / designHeight; float scaleRate = (float)Screen.width / (float)Screen.height; if(scaleRate )//判断...
  • 其实这个问题,如果直接用collider做完全没什么难度,但是想用射线检测做,纠结了我半天。 直接上代码: ... public BoxCollider2D box; //盒子 public Transform t;//盒子的tansfrom void Sta

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 47,216
精华内容 18,886
关键字:

unity2d

友情链接: liyunqi-blog-web.zip