Unity 2D游戏基本知识笔记2
程序员文章站
2024-03-16 17:44:46
...
延时运行函数:
Invoke("函数名", 1.5f); //1.5秒后运行该函数
屏幕坐标转化为世界坐标:
Vector3 WorldPos = Camera.main.ScreenToWorldPoint(ScreenPos); //参数是屏幕坐标
世界坐标转化为屏幕坐标:
Vector3 ScreenPos = Camera.main.WorldToScreenPoint(WorldPos); //参数是世界坐标
两位置之间的距离:
float Distence = Vector3.Distance(Pos1, Pos2); //三维
float Distence = Vector2.Distance(Pos1, Pos2); //二维
单位化向量:
Pos=Pos.normalized;
屏幕坐标转化为UI坐标的函数(方法一):
Vector3 GetUIPos(Vector2 ScreenPos, Canvas canvas) {
Vector3 pos;
RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, ScreenPos, canvas.worldCamera, out pos);
return pos;
}
屏幕坐标转化为UI坐标的函数(方法二):
Vector3 GetUIPos(Vector2 ScreenPos) {
Vector2 pos = ScreenPos - new Vector2(Screen.Width / 2, Screen.Height / 2);
return new Vector3(pos.x, pos.y ,0);
}
求碰撞体的相对速度:
void OnCollisionEnter2D(Collision2D c) {
float Speed = c.relativeVelocity.magnitude;
}
遍历查找对象的子物体:
foreach (Transform child in transform) {
if (child.gameObject.name == "要查找的子物体的名字") {
//执行操作
}
}
判断碰撞到自己的物体是什么:
void OnCollisionEnter2D(Collision2D c) {
if (c.collider.name == "碰撞体的名字") {
//执行操作
}
}
在场景里创建一个对象:
GameObject Obj = Instantiate(gameObject, new Vector3(0, 0, 0), new Quaternion(0, 0, 0, 0));
//参数一:要创建的对象的预设
//参数二:物体的位置
//参数三:物体的旋转角度
修改UI物体的坐标:
transform.GetComponent<RectTransform>().localPosition = new Vector3(0, 0, 0); //以屏幕中心为原点
transform.GetComponent<RectTransform>().position = new Vector3(0, 0, 0); ///以屏幕左上角为原点
修改某个对象所挂脚本里的public变量的值:
GameObject.Find("对象的名字").GetComponent<脚本的名字>().变量名 = 新的值;
上一篇: openmesh基础操作 numpy关于向量的运算
下一篇: 5.Shader
推荐阅读
-
2D游戏——2021年5月9日
-
Unity 2D游戏基本知识笔记2
-
2D游戏——2021年5月30日
-
2D游戏中检测是否在地面的一种方法
-
Unity 从零开始的2D游戏开发 —— 碰撞检测
-
cocos2d-x学习笔记(1)—— cocos2d-x环境搭建 博客分类: cocos2d-x cocos2d-x游戏开发环境搭建
-
opengl编程学习笔记(三)(2D绘图)
-
<2D Graphics>读书笔记----第二章(2.0) 博客分类: Java 2D/3D 读书算法
-
<2D Graphics>读书笔记----第一章(1.0) 博客分类: Java 2D/3D 读书JavaSUNSwing算法
-
决定认真学习一下
博客分类: Java 2D/3D Java读书编程游戏