Unity—常用API(重点)

这篇具有很好参考价值的文章主要介绍了Unity—常用API(重点)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

利用将近两天的时间学习并整理了常用API的知识点!

每日一句:能打动人的从来不是花言巧语,而是恰到好处的温柔以及真挚的内心

目录

脚本生命周期流程图(续上)

常用API

核心类图

*Component类

​编辑

*Transform类

练习:在层级未知情况下查找子物体(递归)

*GameObject类

​编辑

*Object类

练习:查找血量最低的敌人且改变颜色

Unity User Manual 2021.3 (LTS) - Unity 手册https://docs.unity.cn/cn/current/Manual/index.html


脚本生命周期流程图(续上)

Unity—常用API(重点)

Unity—常用API(重点) 

Unity—常用API(重点) 

 

常用API

核心类图

Unity—常用API(重点)

 

*Component类

Component类提供了查找(在当前物体、后代、先辈)组件的功能

//获取当前物体所有组件

var allComponent=this.GetComponents<Component>();

foreach (var item in allComponent)

{Debug,Log(item.GetType();}

//获取后代物体的指定类型组件(从自身开始)

this.GetComponentsInChildren<MeshRenderer>().material.color;

//获取先辈物体的指定类型组件(从自身开始)

this.GetComponentsInParent<MeshRenderer>().material.color;

Unity—常用API(重点)

Unity—常用API(重点) 

Unity—常用API(重点) 

Unity—常用API(重点) 

 

*Transform类

Transform类提供了查找(父、根、子[根据索引和名称])变换组件、改变位置、角度、大小的功能;

//child为每个子物体的变换组件

foreach(Transform child in this.transform)

//物体相对于世界坐标系原点的位置

this.transform.position

//物体相对于父物体轴心点的位置

this.transform.localposition

//相对于父物体缩放比例

this.transform.localScale

//理解为:物体与模型缩放比例(自身缩放比例*父物体缩放比例)

this.transform.lossyScale

如:父物体localScale为2,当前物体localScale为3,则lossyScale为6

//向自身坐标系Z轴移动1m

this.transform.Translate(0,0,1);

//向世界坐标系Z轴移动1m

this.transform.Translate(0,0,1,space.World);

//向自身坐标系Z轴旋转1度

this.transform.Rotate(0,0,1);

//向世界坐标系Z轴旋转1度

this.transform.Rotate(0,0,1,space.World);

//围绕旋转

this.transform.RotateAround(Vector3.zero,Vector3.up[y轴],1);

//获取根物体变换组件

this.transform.root;

//获取父物体变换组件

this.transform.parent;

//设置父物体

public Transform TF;

public transform.SetParent(TF,(ture)[默认世界坐标]/false[自身坐标]);

Unity—常用API(重点)

 

(ture世界坐标,false自身坐标(自身的坐标就是与cube5的距离))

//根据名称获取子物体

Transform childTF=this.transform.Find(“子物体名称”);

//根据索引获取子物体

For(int i=0;i<count;i++)

{Transform childTF=this.transform.GetChild(i);}

Unity—常用API(重点)

Unity—常用API(重点) 

Unity—常用API(重点) 

Unity—常用API(重点) 

Unity—常用API(重点) 

 

练习:在层级未知情况下查找子物体(递归)

Unity—常用API(重点)

 

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class TransformHelper : MonoBehaviour

{

    private void OnGUI()

    {

        if (GUILayout.Button("层级未知,查找子物体"))

        {

            var childTF = TransformHelper.GetChild(this.transform,"Cube (5)");

            childTF.GetComponent<MeshRenderer>().material.color = Color.red;

        }

    }

            /// <summary>

            /// 在层级未知情况下查找子物体

            /// </summary>

            /// <param name="parentTF">父物体变换组件</param>

            /// <param name="childName">子物体名称</param>

            /// <returns></returns>

    public static Transform GetChild(Transform parentTF,string childName)

    {

        //在子物体中查找

        Transform childTF = parentTF.Find(childName);

        if(childTF!=null)return childTF;

        //将问题交由子物体

        int count = parentTF.childCount;

        {

            for(int i=0;i<count;i++)

            {

                childTF = GetChild(parentTF.GetChild(i), childName);

                if (childTF != null)

                    return childTF;
            }

        }

        return null;

    }

    

}

Unity—常用API(重点)

 (效果图)

*GameObject类

//在场景中物体激活状态(物体实际激活状态)

this.gameObject.activeInHierarchy

//物体自身激活状态(物体在Inspector面板中的状态)

this.gameObject.activeSelf;

Unity—常用API(重点)

 

(activeInHierarchy——false,activeSelf——ture)

//设置物体启用/禁用

this.gameObject.SetActive(ture/false);

//创建物体

GameObject lightGO=new GameObject();

//添加组件

Light light=lightGO.AddComponent<Light>();

light.color=Color.red;

light.type=LightType.Point;

//在场景中根据名称查找物体(不建议使用)

GameObject.Find(“游戏对象名称”);

//获取所有使用该标签的物体

GameObject[]allEnemy=GameObject.FindGameObjectsWithTag(“标签”);

//获取使用该标签的物体(单个)

GameObject player=GameObject.FindWithTag(“标签”);

Unity—常用API(重点)

Unity—常用API(重点) 

Unity—常用API(重点) 

 

*Object类

Destory 删除一个游戏对象、组件或资源

//加载新场景时,使目标对象不被自动销毁

DontDestoryOnLoad(transform.gameObject);

//根据类型查找对象

Object.FindObjectOfType<  >();

练习:查找血量最低的敌人且改变颜色

HP实例成员挂在物体中,就是一实例变量

Unity—常用API(重点)

 

找Enemy类型的对象,把所有对象的引用放在一个数组里

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class Enemy : MonoBehaviour

{

    public float HP;

}
using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class FindEnemyDome : MonoBehaviour

{

    private void OnGUI()

    {

        if(GUILayout.Button("查找血量最低的敌人"))

        {

            //查找场景中所有Enemy类型的引用

            Enemy[] allEnemy= Object.FindObjectsOfType<Enemy>();

            //获取血量最低的对象引用

            Enemy min = FindEnemyByMinHP(allEnemy);

            //根据Enemy类型引用,获取其他组件类型引用

            min.GetComponent<MeshRenderer>().material.color = Color.red;

        }

    }

    public Enemy FindEnemyByMinHP(Enemy[] allEnemy)

    {

        //假设第一个就是血量最低的敌人

        Enemy min = allEnemy[0];

        //依次与后边比较

        for(int i=1;i<allEnemy.Length;i++)

        {

            if(min.HP>allEnemy[i].HP)

            {

                min = allEnemy[i];//替换成当前的引用,不要加HP改属性值了

            }

        }

        return min;

    }

}

Time类

Unity—常用API(重点)

Unity—常用API(重点) 

 

一定要经常翻看UNITY文档呦!文章来源地址https://www.toymoban.com/news/detail-446374.html

Unity User Manual 2021.3 (LTS) - Unity 手册https://docs.unity.cn/cn/current/Manual/index.html

到了这里,关于Unity—常用API(重点)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Unity自制手册】unity常用API大全——一篇文章足以(万字详解)

    👨‍💻个人主页 :@元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏 unity 实战系列 ⭐相关文章⭐ ⭐【软件设计师高频考点暴击】 -本站最全-unity常用API大全(万字详解),不信你不收藏 -关于游戏剧情模式中用到的基础简单API -控制游

    2024年02月12日
    浏览(35)
  • 【unity本站最全系列】unity常用API大全一篇文章足以(万字详解)不信你不收藏

    👨‍💻个人主页 :@元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏 unity 实战系列 ⭐相关文章⭐ ⭐【软件设计师高频考点暴击】 -本站最全-unity常用API大全(万字详解),不信你不收藏 -关于游戏剧情模式中用到的基础简单API -控制游

    2024年02月07日
    浏览(44)
  • 常用API学习06(Java)

    public BigInteger (int num, Random rnd)     获取随机大整数,范围:[0~2的num次方-1] public BigInteger (String val)     获取指定的大整数 public BigInteger (String val, int radix)     获取指定进制的大整数 public static BigInteger valueOf (long val)     静态方法获取BigInteger的对象,内部有优化 对象一旦

    2024年02月16日
    浏览(24)
  • 常用API学习03(Java)

    char charAt (int index)     返回char指定索引处的值 char[] toCharArray ()     将此字符串转换为新的字符数组 int compareTo (String anotherString)     按字典顺序比较两个字符串 boolean contains (CharSequence s)     当且仅当此字符串包含指定的char值序列才返回true boolean startsWith (String prefix)   

    2024年02月16日
    浏览(29)
  • Java学习笔记21——常用API

    在 java.lang 下,使用不需要导包 被 final 修饰,是最终类,没有子类 执行基本数字运算的方法 没有构造方法,直接用类名访问(被static修饰 )。 Math的常用方法 在 java.lang 下,使用不需要导包 被 final 修饰,是最终类,没有子类 System类包含几个有用的类字段和方法。它不能被

    2024年02月07日
    浏览(32)
  • 深度学习Pytorch常用api详解记录

    对象 :给定的序列化张量,即 Tensor 型。 功能 :实现两个张量在指定维度上的拼接。 输出 :拼接后的张量。 函数以及参数 : torch.cat( tensor , dim ) ,官方给出的有四个参数,但是我们平时只会用到前两个参数即可。 tensor :有相同形状的张量序列,所有的张量需要有相同的

    2024年02月09日
    浏览(27)
  • Unity学习笔记 - API

            API(Application Programming Interface,应用程序编程接口) 是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。 Unity可以引用的所有对象的基类。 UnityEngine.Object类是Uni

    2023年04月25日
    浏览(23)
  • Flink学习笔记(二)Flink常用API详解

            提供了对时间和状态的细粒度控制,简洁性和易用性较差,主要应用在对一些复杂事件的处理逻辑上。         要提供了针对流数据和离线数据的处理,对低级API进行了一些封装,提供了filter、sum、max、min等高级函数,简单且易用,所以在工作中应用比较广泛

    2023年04月08日
    浏览(35)
  • 556、Vue 3 学习笔记 -【常用Composition API(五)】 2023.08.25

    Vue3中可以继续使用Vue2中的生命周期钩子,但有两个被更名: beforeDestroy改名为beforeUnmount destroy改名为unmounted Vue3也提供了组合式API形式的生命周期钩子,与Vue2中钩子对应关系如下: beforeCreate === setup() created === setup() beforeMount === onBeforeMount mounted === onMounted beforeUpdate === onBefor

    2024年02月11日
    浏览(29)
  • 557、Vue 3 学习笔记 -【常用Composition API(六)】 2023.09.05

    1. shallowReactive 与 shallowRef shallowReactive:只处理对象最外层属性的响应式(浅响应式)。 shallowRef:只处理基本数据类型的响应式,不进行对象的响应式处理。 什么时候使用? 如果有一个对象数据,结构比较深,但变化时只是外层属性变化 === shallowReactive 如果有一个对象数据,后

    2024年02月10日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包