Unity零基础到入门 ☀️| Component(组件)和Transform的常用调用方法介绍

举报
呆呆敲代码的小Y 发表于 2021/08/31 20:37:39 2021/08/31
【摘要】 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

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。