Unity中常用方法

1.基础

//初始化引入
[RequireComponent(typeof(BoxCollider2D))]
[RequireComponent(typeof(Rigidbody2D))]

//引入TextMeshProUGUI是使用TMP_Text 类型
public TMP_Text textMeshProUGUI; //分数Text
textMeshProUGUI.text = fs.ToString();


//游戏帧率设置  60帧
 Application.targetFrameRate = 60;


//获取物体对象
//获取到当前物体(根据名称,也可以根据路径)
 GameObject go= GameObject.Find("红旗");
 GameObject go = this.transform.GetChild(0).gameObject; //根据下标
 GameObject go= Resources.LoadAll<GameObject>("preform/Enemys");//根据目录结构查找Resources目录下面



//物体位置世界位置/本地位置
 Vector3 vector3 = gameObject.transform.position;
 Vector3 vector3 = gameObject.transform.localPosition;

//颜色处理  【R,G,B,透明度】
GUI.color = new Color(GUI.color.r, GUI.color.g, GUI.color.b, alpha);


//复制物体
  AudioSource music = this.GetComponent<AudioSource>();
  Rigidbody2D rb = this.GetComponent<Rigidbody2D>();
  Translate  tr= this.GetComponent<Translate>();

//挂载脚本
gameObject.AddComponent<BulletCol>();



//当前鼠标点击
Input.GetMouseButtonDown(0)

2.方法

0.物体赋予初始位置初始欧拉角

guanzi.transform.position = new Vector3(-10f, -2f, -0.15f);         //初始位置
guanzi.transform.localEulerAngles = new Vector3(-10f, -2f, -0.15f); //初始欧拉角

       1.物体移动Translate物体旋转Rotate

//物体移动 Translate(x, y, z, 相对)Self 相对自己,Word相对世界
this.transform.Translate(0, 0, 每秒运行长度, Space.Self);

//物体旋转 Rotate(x, y, z, 相对)Self 相对自己,Word相对世界
this.transform.Rotate(0, 速度 * Time.deltaTime, 0, Space.Self);

//父物体旋转 Rotate(x, y, z, 相对)Self 相对自己,Word相对世界
this.transform.parent.Rotate(0, 速度 * Time.deltaTime, 0, Space.Self);

      2.朝向物体移动LookAt

 //让当前物体看向红旗 把物体z轴转向目标LookAt(transform);
this.transform.LookAt(GameObject.transform);

     3.播放音乐

    public AudioClip[] acp;

    public void playMusic(){
        int index = Random.Range(0, acp.Length);
        AudioSource ast = GetComponent<AudioSource>();
        ast.clip = this.acp[index];
        ast.Play();
        ast.Stop();
  }

4.赋予初始速度(刚体)Rigidbody2D

Rigidbody2D rb = this.GetComponent<Rigidbody2D>(); 
rb.velocity = new Vector2(x,y);//x/y 为多少速度为多少 

5.本地坐标转世界坐标

Vector3 targetPos = Camera.main.ScreenToWorldPoint(Input.mousePosition);

6.动画处理传送门

7.摄像机跟随玩家 

8.事件处理

9.场景处理 

//场景切换
SceneManager.LoadScene("game");

 3.函数

消息函数

//发送消息调用  【方法名字,方法参数,参数3】
//SendMessageOptions.DontRequireReceiver 找不到方法不回报错
//SendMessageOptions.RequireReceiver     找不到方法会报错
gameobject.SendMessage("Damage", Random.Range(5, 21),SendMessageOptions.DontRequireReceiver);

定时函数

InvokeRepeating("射击", 1, 2); // 等待1秒后每2秒吊用一次射击的方法。
IsInvoking("射击")     判断该函数是否被调用 如果没有在调用
CancelInvoke("射击")   取消被调用

预制体

//实例化一个guanzi位置在gzWzzb.transform相对于(true)本地坐标/false世界坐标
//实例化预制体, Instantiate(预制体,位置,true/false) true是本地坐标false世界坐标
 guanzi = Instantiate(guanzi, gzWzzb.transform, true);


guanzi.transform.rotation = gzWzzb.transform.rotation;//设置旋转位置


//物体销毁  物体3秒后销毁
 Destroy(guanzi, 3f);

图像轮动

//_MainTex写死,Vector(x,y);  Time.time/5沿着X轴5秒轮动一次
 this.GetComponent<Renderer>().material.SetTextureOffset("_MainTex",new Vector2(Time.time/5,0));

 物体移动

 Vector3 ui;
//物体的移动【移动的transform,移动的位置,移动的角度,移动后输出的位置】
RectTransformUtility.ScreenPointToWorldPointInRectangle(rectTransform, eventData.position, eventData.enterEventCamera, out ui);

 携程开辟一个线程

 //StartCoroutine(方法)
 StartCoroutine(aTime());

IEnumerator aTime()
    {
        while (djs >= 0)
         {
            djsGUI.text = djs.ToString();
             yield return new WaitForSeconds(1);
            djs--;
         }
        yield return new WaitForSeconds(1);
 }

//IEnumerator  对应yield类型
yield return 0; //等0帧 销毁这个对象
yield return 1; //等1帧 销毁这个对象
yield return WaitForSeconds(3); //等待3秒 销毁这个对象

异步加载一个场景

时间函数

Time.time从游戏开始后所运行的时间
Time.deltaTime表示从上一帧到当前帧时间
Time.frameCount时间的缩放,Time.timeScale为1是默认值,为0可用于游戏的暂停,为2可用于游戏的快进

4.生命周期

MonoBehaviour生命周期

void Awake(){} //最早时调用,一般可以在此实现单例模式(未激活的组件也会被调用)
void OnEnable(){} //组件激活后调用,在awake()后调用一次
void Start(){}  //在update()之前调用一次,在onEnable之后调用,可以再次设置一些初始值。(未激活的组件不会被调用)
void FixedUpdate(){}//固定频率调用方法,每次调用与上次调用的时间间隔相同
void Update(){}     //帧率调用法,每帧调用一次,每次调用与上一次调用的时间间隔不相同
void LateUpdate(){} //在udate()每调用完一次后,紧跟着调用一次
void OnDisable(){}  //与onEnable相反,组件未激活时调用
void OnDestroy(){}  //被销毁后调用一次

 面板的生命周期

//面板开启时候执行
void OnEnter(){}

//UI暂停时执行的操作
void  onPause(){}

//UI继续时执行的操作
void  onResume(){}

//面板结束时候执行
void OnExit(){}

5.鼠标键盘事件Input方法

6.碰撞事件

### 回答1: Unity中Transform常用方法包括: 1. Translate:移动物体的位置。 2. Rotate:旋转物体。 3. Scale:缩放物体。 4. LookAt:使物体朝向目标。 5. SetParent:设置物体的父级。 6. Find:查找场景中的物体。 7. GetComponent:获取物体上的组件。 8. SetActive:设置物体的激活状态。 9. position:获取或设置物体的位置。 10. rotation:获取或设置物体的旋转。 11. localPosition:获取或设置物体相对于父级的位置。 12. localRotation:获取或设置物体相对于父级的旋转。 13. localScale:获取或设置物体相对于父级的缩放。 14. forward:获取物体的前向向量。 15. up:获取物体的上向向量。 16. right:获取物体的右向向量。 17. parent:获取或设置物体的父级。 18. childCount:获取物体的子物体数量。 19. GetChild:获取物体的子物体。 20. SetSiblingIndex:设置物体在兄弟节点中的顺序。 ### 回答2: Unity中的Transform组件是非常常用的一个组件,它包含了游戏对象的位置、旋转和缩放信息,原本的Transform提供了部分常用方法,例如position、rotation、scale等属性,但是这些属性不能满足所有的需求。在Unity中,我们可以使用Transform类型提供的其他方法来处理游戏对象的位置、旋转及缩放等信息。下面是一些Transform常用方法: 1. Translate:将游戏对象沿着指定轴向移动一定的距离,其参数包含了位移的向量、要相对于哪个坐标系移动,并且支持相对和绝对模式的移动。 2. Rotate:将游戏对象绕着指定轴进行旋转,其参数包含了旋转的向量、要旋转的轴(X、Y、Z)的模式以及是相对还是在世界坐标系内进行旋转。 3. Scale:将游戏对象按照指定的倍数进行缩放,其参数为 3D向量值。 4. LookAt:将游戏对象的正向向量朝向目标物体,其参数为要朝向的对象的位置。 5. TransformDirection:将相对于本地坐标系的方向向量转换为世界坐标系方向向量。 6. TransformPoint:将相对于本地坐标系的点向量转换为世界坐标系点向量。 7. InverseTransformPoint:将相对于世界坐标系的点向量转换为本地坐标系的点向量。 总之,Transform组件包含很多实用的方法,可以帮助我们快速方便地控制游戏对象的位置、旋转、缩放等信息。熟练掌握这些方法将有助于我们更高效地开发游戏。 ### 回答3: Unity中的Transform组件是游戏对象的重要组件之一,它决定了游戏对象在3D世界中的位置,旋转和缩放。因此,对Transform组件的了解是非常重要的。下面是Unity中Transform常用的一些方法: 1. Position:Transform组件的Position属性可以确定游戏对象相对于父对象或世界的位置。可以使用Vector3类型来修改游戏对象的位置。 2. Rotation:Rotation属性可以设定游戏对象相对于父对象或世界的旋转。可以使用Quaternion类型或Euler Angles来修改旋转角度。 3. Scale:Scale属性可以改变游戏对象的缩放。可以使用Vector3类型来缩放游戏对象。 4. TransformDirection:将向量从本地坐标系变换到世界坐标系。 5. TransformVector:将向量从本地坐标系变换到父对象坐标系。 6. LookAt:使游戏对象朝向指定的目标。 7. Translate:将游戏对象平移指定的距离。 8. Rotate:将游戏对象旋转指定的角度。 9. Scale:缩放游戏对象指定的大小。 10. SetParent:设置游戏对象的父对象。 11. DetachChildren:将子对象从父对象中解绑。 12. Find:查找指定名称的游戏对象。 上述是Transform组件的常用方法,可以帮助您构建3D游戏。当然,Unity也支持脚本编程,您可以使用脚本来控制游戏对象的Transform组件,从而实现更复杂的游戏功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MM-BD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值