Unity零基础到入门 ☀️| Component(组件)和Transform的常用调用方法介绍
【摘要】 Component(组件)Component就是组件,在上篇博客已经介绍了,这里再重新介绍下脚本API的使用吧添加、获取和销毁组件的方法添加组件GameObject Cube= GameObject.CreatePrimitive(PrimitiveType.Cube);//创建一个方格Cube.AddComponent<BoxCollider>();//添加盒形碰撞器组件Cube.AddC...
Component(组件)
Component就是组件,在上篇博客已经介绍了,这里再重新介绍下脚本API的使用吧
添加、获取和销毁组件的方法
添加组件
GameObject Cube= GameObject.CreatePrimitive(PrimitiveType.Cube);//创建一个方格
Cube.AddComponent<BoxCollider>();//添加盒形碰撞器组件
Cube.AddComponent<Rigidbody>();//添加刚体组件
Cube.AddComponent<Test>();//添加Test脚本
获取组件
BoxCollider boxCollider = Cube.GetComponent<BoxCollider>();//获取盒形碰撞器组件
Rigidbody rigidbody = Cube.GetComponent<Rigidbody>();//获取刚体组件
Test test= Cube.GetComponent<Test>();//获取某个Test脚本
GetComponent
GetComponents
GetComponentInChildren
GetComponentsInChildren
GetComponentInParent
GetComponentsInParent
销毁组件
//()中的参数为创建相应组件时的组件名称
Destroy(boxCollider );//销毁盒形碰撞器组件
Destroy(rigidbody);//销毁刚体组件
Transform
Transform组件在上篇介绍组件的博客也说过了,这里在提一下在脚本使用的API
下面来用代码示例学一下Transform的使用
void Start(){
//1.控制游戏对象的变换
Debug.Log(transform.position);//世界坐标
Debug.Log(ransform.localPostion);//本地坐标
Debug.Log(transform.eulerAngles);//世界欧拉角
Debug.Log(transform.localEulerAngles);//本地欧拉角
Debug.Log(transform.rotation);//世界旋转(四元数)
Debug.Log(transform.localRotation);//本地旋转(四元数)
//本地缩放
Debug.Log(transform.localScale);
//方向
//自身前方的方向向量
Debug.Log(transform.forward);
//自身右方的方向向量
Debug.Log(transform.right);
//自身上方的方向向量
Debug.Log(transform.up);
//描述游戏对象的层级关系
//父对象
Debug.Log(transform.parent);
//根对象
Debug.Log(transform.root);
//设置父物体
transform.parent = lookAtTarget;
//==>
transform.SetParent(lookAtTarget);
//遍历所有的子对象
foreach (Transform tra in transform)
{
Debug.Log(tra);
}
//遍历所有的子对象
for (int i = 0; i < transform.childCount; i++)
{
Debug.Log(transform.GetChild(i));
}
//找当前对象的子对象
Transform sph = transform.Find("Cylinder/Sphere");
Debug.Log(sph);
}
private void Update()
{
//角色朝自身前方移动
// transform.position += transform.forward * 0.05f;
// transform.Translate(transform.forward * 0.05f);
//自转
transform.Rotate(new Vector3(0,1,0),2,Space.World)
// ==>
transform.eulerAngles += new Vector3(0,1,0);
transform.Rotate(new Vector3(0,1,0),2,Space.Self);
//==>
transform.localEulerAngles += new Vector3(0,1,0);
//绕某个点沿某个轴,旋转
transform.RotateAround(new Vector3(0, 0, 0), new Vector3(0, 1, 0), 5);
transform.LookAt(new Vector3(0,0,0));
transform.LookAt(lookAtTarget);//看向某个对象
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)