遨游unity

想法

如题,记录一下遨游unity时碰到的小问题,往往是网上难以找到资料的,或是资料容易产生误导的。

摄像机设置透视或正交

开发一个2d小游戏时,碰撞盒计算没有问题,但是在游戏界面总有非预期的重叠效果,像是碰撞盒错位了。
一番研究发现是摄像机的问题:2d游戏应当使用正交。
在物体有z轴的情况下,摄像机是透视的,就会产生这种错位现象。
反过来说,在2d游戏中采用摄像机透视和z轴,就可以做出类似《奥日》的背景前景的效果,营造纵深。

鼠标点击位置

如何判断一个鼠标是否点到某个物体呢?
UI上的还比较简单,如果是3d的呢。
从摄像机打一条射线通过鼠标点击的地方,碰撞到物体,就知道玩家点的哪个东西了

1
2
3
4
5
6
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
GameObject box = hit.collider.gameObject; //获得选中物体
}

改变TextMeshPro中的文字

经常用到TextMeshPro来做UI,这是个需要导入的库,有些组件也和原生的有些规范差异。
这样修改文字

1
2
3
using TMPro; //最上方导入

box.GetComponent<TMP_Text>().text = word[card_type];

unity语法提示

默认打开vs时是没有unity语法提示的
打开方式:编辑->首选项->外部工具->外部脚本编辑器
再选中一个,重启下vs。

动画控制器

其中的离开时间的数值是动画的百分比长度,而不是秒数

碰撞箱相关

OnCollision:

1.双方必须要有Collider

2.其中一方必须要有刚体

3.有刚体的一方不能勾选Is Trigger

PS:此情况下会有刚体的物体碰撞效果,而且无法在没有刚体物理碰撞效果下触发该函数

OnTrigger:

1.双方必须要有Collider

2.其中一方勾选Is Trigger

3.其中一方必须要有刚体

PS:在带刚体的物体下的Colloder中勾选Is Trigger后刚体的物理碰撞效果会失效

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2020-2021 d1gg12
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信