一、Transform类
在Unity中,Transform 类是一种用于表示和操作游戏对象位置、旋转和缩放的类。每个游戏对象都有一个关联的 Transform 组件,该组件定义了对象在场景中的空间变换信息。
1.常见属性和方法
获取位置
相对与世界坐标系:Debug.Log(transform.position);
相对于父物体:Debug.Log(transform.localPosition);
获取旋转
相对与世界坐标系:Debug.Log(transform.rotation);
相对于父物体:Debug.Log(transform.localRotation);
相对于都物体的缩放:Debug.Log(transform.localScale);
获取向量
前方:Debug.Log(transform.forward);
右方:Debug.Log(trahsform.right);
上方:Debug.Log(transform.up);
物体的前方方向指向指定的位置:
transform.LookAt(Vector3.zero);
围绕物体自身的“上”轴旋转指定角度:
transform.Rotate(Vector3.up,1);
使物体绕指定点以及指定轴旋转指定角度:
transform.RotateAround(Vector3.zero, Vector3.up,5);
沿着物体自身的前方方向移动物体:
transform.Translate(Vector3.forward * 0.1f);
2.通过脚本控制父子关系
获取父物体
transform.parent.gameObject;
子物体个数
Debug.Log(transform.childCount);
解除与子物体的父子关系
transform.DetachChildren();
获取指定的子物体,返回值是Transform
通过名字去获取:Transform trans = transform.Find("Child");
通过索引去获取:trans = transform.GetChild(0);
判断一个物体是不是另外—个物体的子物体
bool res = trans.lsChildOf(transform);
二、虚拟轴
在Unity中,虚拟轴(Virtual Axes)是一种用于处理输入的抽象概念。它们允许你以一种更灵活的方式处理用户输入,而不直接关注具体的输入设备(如键盘、鼠标或手柄)。
在Unity中,可以通过 Input Manager 配置输入设置,包括虚拟键和虚拟轴。可以在Unity编辑器中通过选择“Edit” -> “Project Settings” -> “Input Manager”来设置输入管理器。
使用虚拟轴:
1.在输入管理器中定义一个虚拟轴,例如给它一个名称(比如"Horizontal"或"Vertical")。
2.在你的脚本中,通过Input.GetAxis或Input.GetAxisRaw来获取虚拟轴的输入值。
float horizontalInput = Input.GetAxis("Horizontal");
float verticalInput = Input.GetAxis("Vertical");
虚拟轴可以用于移动控制、摇杆控制和视角控制。
注意事项:
1.虚拟轴值的范围:Input.GetAxis 返回在-1到1之间的浮点数,表示输入的强度。0表示没有输入,-1表示负方向输入,1表示正方向输入。
2.虚拟轴的初始值:Input.GetAxisRaw 返回在-1、0和1之间的整数,它不会进行平滑处理。
三、触摸输入
在Unity中,触摸输入是指对支持触摸屏的设备(例如智能手机、平板电脑)上的用户触摸进行响应的功能。
获取的触摸对象
Touch touch = Input.touches[0];
获取触摸的位置
Debug.Log(touch.position);
检查触摸的阶段
switch(touch.phase){
case TouchPhase.Began:// 触摸开始
break;
case TouchPhase.Moved:// 触摸移动
break;
case TouchPhase.Stationary:// 触摸静止
break;
case TouchPhase.Ended:// 触摸结束
break;
}