Unity Gameobject类测试
Unity 学习笔记汇总
官方API使用文档
文章目录
- 1. 测试1
- 1.1. 前台
- 1.2. 代码
- 1.3. 结果
- 2. 测试2
- 2.1. 前台
- 2.2. 代码
- 2.3. 结果
- 3. 测试3
- 3.1. 前台
- 3.2. 代码
- 3.3. 效果
- 4. 举一反三
- 4.1. 前台
- 4.2. 代码
- 4.3. 运行结果
1. 测试1
1.1. 前台
新建3D Object中的Cube
、Sphere
、Capsule
,其中它们的位置及父子关系如图所示
1.2. 代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class NewBehaviourScript : MonoBehaviour
{// Start is called before the first frame updatepublic GameObject cube, capsule;void Start(){//Test1cube = GameObject.Find("Cube");/** Finds a game object by name and returns it.* If no game object with name can be found, null is returned. If name contains a '/' character it will traverse the hierarchy like a path name. This function only returns active gameobjects. */Debug.Log(cube);capsule = GameObject.Find("Capsule");Debug.Log(capsule);capsule = GameObject.Find("Sphere/Capsule");Debug.Log(capsule);capsule = GameObject.Find("Sphere/Capsule");Debug.Log(capsule);capsule = GameObject.Find("Cube/Sphere/Capsule");Debug.Log(capsule);//Debug.Log("Start");}// Update is called once per framevoid Update(){capsule.transform.Rotate(0, 100 * Time.deltaTime, 0);//Debug.Log("Update");}
}
1.3. 结果
2. 测试2
2.1. 前台
手动拖拽Cube
到T2脚本所对应的Cube里
2.2. 代码
T2
using UnityEngine;public class T2 : MonoBehaviour
{public GameObject cube;public MeshRenderer meshRenderer;public BoxCollider boxCollider;// Start is called before the first frame updatevoid Start(){Debug.Log(cube);//获取组件//meshRenderer = cube.gameObject.GetComponent<MeshRenderer>();//boxCollider = cube.gameObject.GetComponent<BoxCollider>();//添加一个组件cube.gameObject.AddComponent<Rigidbody>();}// Update is called once per framevoid Update(){}
}
2.3. 结果
由于绑定了刚体,所以会看到这三个物体进行了下落(受重力作用)
3. 测试3
3.1. 前台
3.2. 代码
using UnityEngine;public class T2 : MonoBehaviour
{public GameObject cube, cube1;public MeshRenderer meshRenderer;public BoxCollider boxCollider;// Start is called before the first frame updatevoid Start(){Debug.Log(cube);//获取组件//meshRenderer = cube.gameObject.GetComponent<MeshRenderer>();//boxCollider = cube.gameObject.GetComponent<BoxCollider>();//添加一个组件//cube.gameObject.AddComponent<Rigidbody>();//初始化cube1cube1 = GameObject.CreatePrimitive(PrimitiveType.Cube);cube1.transform.position = new Vector3(10, 0, 1);cube1.GetComponent<Renderer>().material.color = Color.yellow;}// Update is called once per framevoid Update(){if(Input.GetKeyDown(KeyCode.W)){cube.SetActive(false);}else if (Input.GetKeyDown(KeyCode.S)){cube.SetActive(true);}}
}
3.3. 效果
会看到有一个黄色的Cube
按W键白色的全消失,再按S键又重新恢复
4. 举一反三
主要演示以下两种方法的用法:
Static Methods | Description |
---|---|
FindGameObjectsWithTag | Returns an array of active GameObjects tagged tag. Returns empty array if no GameObject was found. |
FindWithTag | Returns one active GameObject tagged tag. Returns null if no GameObject was found. |
在Unity中一个物体只能有一个Tag,但是一个Tag可以被多个物体使用。
4.1. 前台
给Cube添加一个自定义的标签CubeTag
4.2. 代码
using UnityEngine;public class T2 : MonoBehaviour
{public GameObject cube, cube1, go;GameObject[] gos = new GameObject[10];public MeshRenderer meshRenderer;public BoxCollider boxCollider;// Start is called before the first frame updatevoid Start(){Debug.Log(cube);//获取组件//meshRenderer = cube.gameObject.GetComponent<MeshRenderer>();//boxCollider = cube.gameObject.GetComponent<BoxCollider>();//添加一个组件//cube.gameObject.AddComponent<Rigidbody>();//初始化cube1cube1 = GameObject.CreatePrimitive(PrimitiveType.Cube);cube1.transform.position = new Vector3(10, 0, 1);cube1.GetComponent<Renderer>().material.color = Color.yellow;//举一反三gos = GameObject.FindGameObjectsWithTag("CubeTag");Debug.Log("gos[0]:");Debug.Log(gos[0]);go = GameObject.FindWithTag("CubeTag");Debug.Log("go:");Debug.Log(gos[0]);}// Update is called once per framevoid Update(){if(Input.GetKeyDown(KeyCode.W)){cube.SetActive(false);}else if (Input.GetKeyDown(KeyCode.S)){cube.SetActive(true);}}
}
4.3. 运行结果
Unity Gameobject类测试相关推荐
- Unity 工具类 之 WWW/UnityWebRequest 下载压缩文件(zip),解压到本地且加载使用解压数据的简单案例(内也含压缩文件例子)
Unity 工具类 之 WWW/UnityWebRequest 网络下载压缩文件(zip),解压到本地,且加载使用解压数据的简单案例(内也含压缩文件例子) 目录 Unity 工具类 之 WWW/Uni ...
- Unity制作类胡闹厨房游戏 KitchenChaos 笔记整理
本文章是油管上CodeMonkey的一个unity项目KitchenChaos的笔记整理,学习并整理这个项目主要是因为终于看到了一个比较完整地用到了unity的各种功能.风格较为清爽的.代码结构清晰的 ...
- Unity 工具类 之 编辑扩展器 之 简单的音效管理编辑扩展器面板实现
Unity 工具类 之 编辑扩展器 之 简单的音效管理编辑扩展器面板实现 目录 Unity 工具类 之 编辑扩展器 之 简单的音效管理编辑扩展器面板实现 一.简单介绍 二.实现原理 三.注意事项 四. ...
- Junit实现接口类测试
写接口的目的一般是,让这个接口的所有实现都具备某个共同的行为.这个行为不仅目前实现的类具备,将来要写的实现也都必须具备.因此,就需要为这个接口编写一个通用的测试程序,这个测试程序不仅能测试当前已经实现 ...
- boost::signals2模块实现连接类测试
boost::signals2模块实现连接类测试 实现功能 C++实现代码 实现功能 boost::signals2模块实现连接类测试 C++实现代码 #include <boost/signa ...
- DCMTK:CT位置FG类测试
DCMTK:CT位置FG类测试 CT位置FG类测试 CT位置FG类测试 #include "dcmtk/config/osconfig.h" #include "dcmt ...
- 存根类 测试代码 java_测试双打:模拟,假人和存根
存根类 测试代码 java 大多数班级都有合作者. 在进行单元测试时,您通常希望避免使用那些协作者的实际实现方式来避免测试的脆弱性和绑定/耦合,而应使用测试双打:模拟,存根和双打. 本文引用了有关该主 ...
- 怎样编写测试类测试分支_编写干净的测试–天堂中的麻烦
怎样编写测试类测试分支 如果我们的代码有明显的错误,我们很有动力对其进行改进. 但是,在某些时候,我们认为我们的代码"足够好"并继续前进. 通常,当我们认为改进现有代码的好处小于所 ...
- 怎样编写测试类测试分支_编写干净的测试-被认为有害的新内容
怎样编写测试类测试分支 很难为干净的代码找到一个好的定义,因为我们每个人都有自己的单词clean的定义. 但是,有一个似乎是通用的定义: 简洁的代码易于阅读. 这可能会让您感到有些惊讶,但我认为该定义 ...
最新文章
- RobotFrameWork(五)控制流之if语句——Run Keyword If
- 【设计模式1】宏观总结
- 妙笔生花:一个易用、高效的文本生成开源库
- html5网页自动滚动,Html5 滚动穿透的方法
- 最新HoloLens在windows10上的开发配置(1)
- 业务,大数据监控平台搭建
- 淘宝联盟升级高佣金账户,高返利,淘宝客
- 我的世界 Unity3D MineCraft 用Unity3D制作类似MineCraft我的世界的游戏 洞穴算是完成了
- 由syms生成函数,求该函数在某些点的数值
- 2020牛客暑期多校训练营(第九场) 	The Flee Plan of Groundhog
- BAT机器学习面试1000题系列(第1~305题
- 开源美狐美颜SDK功能代码分析
- 小程序中maring-top、maring-left、maring-right、maring-bottom失效/没有用的原因及解决方案
- 深度学习-第二章 卷积神经网络面试题(大厂必问,历经半年整理)
- 服务端向客户端主动发送消息
- 生活简单案例,分析管理中的深奥道理
- java 写的星际争霸_用java写星际争霸的ai
- Excel文件转换为txt文本第一次更新
- PAT 自学题解 B1033【测试点4超时】
- 中小互联网软件公司的骗局--前言
热门文章
- 爱立信面向中国市场推出新一代中频段产品;中石化物探院与浪潮合作提升大数据平台 | 全球TMT...
- MTK方案GPON ONU注册流程和OMCI分析
- 学习笔记(03):自然语言处理Word2Vec视频学习教程-CBOW模型实例
- kaniko kubernetes 构建镜像
- ATEN—第十章OSPF的高级配置(2)
- 花店管理java_基于jsp的花店销售-JavaEE实现花店销售 - java项目源码
- 19位算法工程师总结:机器学习项目成功落地的三条秘诀
- PC寄存器/程序计数器(Program Counter Register)
- 2022-2028全球汽车HSD连接器行业调研及趋势分析报告
- 基于javaweb+mysql的律师事务所律师管理系统(java+SSM+HTML+JS+jsp+mysql)