unity-unity2d基础操作笔记(三)0.5.3204

目标是:牢记以下137条操作,越级上升到中级阶段

unity-unity2d基础操作笔记(三)

一百零一、如何操作一个游戏物体由多个部分组成的动画

当一个人物由多个部分的动画组成,可以将动画的多个部分都放入一个数组中,当需要执行某个动作时,循环数组执行某一个动画就可以了

一百零二、如何使用rigidbody 2d进行物体移动

float h = Input.GetAxis(“Horizontal”); rd.velocity = new Vector2(h " speed * Time.fixedDeltaTime, rd.velocity.y);

一百零三、获取游戏物体身上的组件方法

一个游戏物体上可以挂在多个脚本,可以通过如下获取脚本,同时,当播放动画的时候,一般都需要先获取Animator组件

  1. public定义好

  2. 直接拖动

  3. 通过代码GetComponent获取

一百零四、代码控制物体朝向

transform.rotation=Quternion.Euler(0,0,0)右边
transform.rotation=Quternion.Euler(0,180,0)右边

一百零五、不使用插件,纯手动跳跃的实现

  1. 还是使用rigidbody2d组件

  2. 通过rigidbody 2d组件给一个向上的力

rd.AddForce(Vector2.up*500F);

  1. 如何防止多段空中跳跃

可以设定给一个int的值如 int 具名Num=1

在按下键的时候Num-=1

同时执行动画的条件加上一个&& 条件Num>0

当落在地上的时候Num=1

  1. 如何判断是否落在地上

先给地上打上标签,通过碰撞体碰撞的时候判别,碰撞的时候识别碰撞的是什么,可以通过

other.transform.tag

一百零六、如何判断玩家按下了某个键

Input.GetKeyDown(KeyCode.K)

一百零七、如何防止跳的过程中可以左右移动

只需要判断是否在地上,在空中,就不移动,在移动方法中直接return

if(isOnGround -false) return;

一百零八、实现多方向开枪的思路

  1. 在玩家上和右边创建空物体作为发射点

  2. 在hirachy中,将发设定放在玩家的下面

一百零九、如何保存预制体变动

  1. 如果在hirachy中,预制体有 改动

  2. 在inspector面板中,点击overrides保存变动

  3. 然后点击apply all

一百一十、如何制作子弹预制体

  1. 在hirachy中,创建一个2d object中的sprites–squre

  2. 将子弹图片拖入到建好的squre中的sprite里

  3. 重置坐标,点击transform右上三点,点击reset

  4. 设置子弹大小,Transform中,设置scale

  5. 修改squre为bullet

  6. 为bullet添加box collider 2d和rigidbody 2d,取消rigidbody 2d中重力为0

  7. 勾选bullet中rigidbody 2d组件中的is Trigger

  8. 锁定rigidbody 2d中的z轴:Constaints–Freeze Rotation z

  9. 为子弹添加新的层级,选中bullet,然后在sprite rederer中–sorting layer–add sorting layer

一百一十一、如何从预制体路径上生成子弹

如我的子弹预制体放在resource下面的Prefabs/Bullet,则代码可以表示为:

GameObject temp = Resources.Load(“Prefabs/Bullet”);

GameObject go =Instantiate(temp, curPoint.transform.position, Quaternion.identity);

一百一十二、如何实现子弹飞行

  1. 调整方向,子弹的方向,可以通过调整子弹的z轴实现

  2. 加速度飞行,如y方向飞,如何代码可实现rigidbody.velocity=new Vector2(0,23)

一百一十三、直接在代码里面可以使用标签匹配找到物体

GameObject.FindGameObjectWithTag(“xxxx”)

一百一十四、欧拉角表示旋转

Quaternion.Euler(x,y,z)
x y z表示角度,具体的可以在inspector面板中transform上输入数值观看效果

一百一十五、如何获取另外一个脚本的方法

如果一个物体上挂载了两个脚本A和B,那么在A脚本中,可以通过GetComponent() 来获取B这个脚本,从而可以调用里面的方法

一百一十六、如何通过路径加载AudioClip

AudioClip clip=Resources.Load<AudioClip>("Sounds/kill.wav");

AudioSource.PlayClipAtPoint(clip,Camera.main.transform.position);

一百一十七、代码中如何控制游戏物体身上的Animator组件是否勾选

private Animator anim;

anim.enabled=true或者false

一百一十八、如何通过界面的方式添加动画事件

  1. 点开animation窗口

  2. 点击左边的add event事件按钮

  3. 此时右边窗口上面就会出现事件的标记,可以拖动标记到你想要添加事件的地方

  4. 给游戏物体挂载脚本,并选中游戏物体

  5. 此时Animation Event监视面板中就可以选择Function,选择脚本上的方法即可

一百一十九、围绕自身旋转代码实现

rigidbody.transform.Rotate(new Vector3(0,0.1),Space.Self)

一百二十、手榴弹遇到物体时的状态设置

  1. 速度0

  2. 旋转0

  3. 重力0

rd.velocity = Vector2.zero; rd.transform.rotation = Quaternion.Euler(0, 0, 0); gameObject.GetComponent<Rigidbody2D>().gravityScale = 0;

一百二十一、移动的第四种方法

transform.position = Vector2.MoveTowards(transform.position, player.position, Time.deltaTime);

一百二十二、游戏物体旋转的写法

transform.rotation = Quaternion.Euler(new Vector2(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值