Unity 脱坑,我可能遇到的100种问题

一、操作类

1.C#脚本打开没有代码提示

解决办法
1、Unity——>编辑——>首选项——>外部工具——>【划重点,把Open by file extension 改为 对应的VS 编辑版本】,在选择重新生成项目文件
2、Unity——>资源——>打开C# 项目
前后区别在于VS打开后左边有没有显示“解决方案资源管理器”,有的话里面应该能看到“Assembly—CSharp”,这个时候再打开就能看到快速提示

2.动画设计看不到具体帧数内容和动画的帧数

解决办法
1、在对应动画名称:Sprite 前面有个箭头,请点击!!!!就能查看每帧内容明细
2、在时间最后三个小竖点,点击后勾选【show sample rate】,就能为动画设置帧数

3.cinemachine自动镜头跟踪器没法设置边界框【两次都犯同一个错误】

不是通过添加组件,而是通过自带的Extension进行扩展

解决办法
1、Add Extension ——> 加入CineMachine confiner
2、项目 ——>添加空物体 ——>添加 Polygon Collider 2D 点击编辑图形【编辑边界】
3、最重要,边界的gameObject要勾选触发器
4、将空物体拖拽到CineMachine confiner 中
5、confine Screen Edges 也要勾选

4.C#脚本写完没有生效

解决办法
1、选中物件,添加组建,选择编译后的脚本【要挂载脚本才能生效】

5.画布没有展示

解决办法
1、新建层级时,新建UI——>Canvas 而不是新建一个空物体

6. TileMap 瓦片地图没有碰撞

解决办法
1、再Tilemap 地图上加的碰撞应该是 TileMap collider 2D 不是 Box Collider 2D
2、然后加上composite collider 2D ,再TileMap collider 2D勾选 复合使用
3、注意再Tilemap上画图时要选择不同的画布

7. 动画器混合树参数选择不到

解决办法
1、将参数从Bool值改为Float值

二、API

1. 【vector2.Normalize】使用Input函数获取水平和垂直,每次量不一样

解决办法

// 关键代码
vector2.y = Input.GetAxis("Vertical");  //返回-1和1之间的值,根据键盘按下的时间
vector2.y = Input.GetAxisRaw("")  //直接返回-1和1
vector2.Normalize;  //归一化,简单的说就是将向量的长度变为1,让距离保持一致,在对角线上移动时和水平或垂直一样快。

2. 使用transform.position 必须使用三维数组相加

// 关键代码
transform.position += new Vector3(vector2.x,vector2.y,0.0f) * playerSpeed * Time.deltaTime;

// 有碰撞需求建议使用
private Vector2 vector2 = new Vector2();
private Rigidbody2D rb2d;
……
rb2d = GetComponent<Rigidbody2D>();
……
private void moveCharactor()
{
   
	vector2.y = Input.GetAxis("Vertical");  //返回-1和1之间的值,根据键盘按下的时间
	vector2.y = Input.GetAxisRaw("")  //直接返回-1和1
	vector2.Normalize;  //归一化,简单的说就是将向量的长度变为1,让距离保持一致,在对角线上移动时和水平或垂直一样快。
	rb2d.velocity = vector2 * playerSpeed;
}
private void FixedUpdate()
{
   
    moveCharactor();
}

3. 【Animator .SetFloat】如何获取动画器里面的参数

注意这里是Animator 不是 Animation ~~~

// 关键代码
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值