🏆 个人愚见,没事写写笔记
🏆《博客内容》:Unity3D开发内容
🏆🎉欢迎 👍点赞✍评论⭐收藏
🔎目标:MonoBehavior中的常用内容
☀️实现:获取当前GameObject,Transfrom信息的属性,以及多种获取脚本信息的方法。
注:脚本挂在到GameObject物体上!!!
public class Learn3 : MonoBehaviour
{
public Learn3Test learn3Test;
private void Start()
{
#region 成员
// 1.获取当前的GameObject
GameObject gameObject = this.gameObject;
print(gameObject.name);
// 2.获取当前的Transfrom
Transform transform = this.transform;
//同理:Transform transform =this.gameObject.transform;
print(transform.position);//位置
print(transform.eulerAngles);//旋转
print(transform.lossyScale);//缩放
// 3.控制脚本是否激活
this.enabled = false;
// 4.获取其他的脚本对象的GameObject
GameObject otherGameObject1 = learn3Test.gameObject;
print(otherGameObject1.name);
#endregion
#region 方法
//获取对象的其它脚本
//获取自身单个脚本
//1.根据脚本名字获取,如果获取失败返回NULL
Learn3Test learn3Test1 = this.GetComponent("Learn3Test") as Learn3Test;
if (learn3Test1 != null) learn3Test1.TestFun(nameof(learn3Test1));
//2.根据类型获取
Learn3Test learn3Test2 = this.GetComponent(typeof(Learn3Test)) as Learn3Test;
if (learn3Test2 != null) learn3Test2.TestFun(nameof(learn3Test2));
//3.根据泛型获取(常用)
Learn3Test learn3Test3 = this.GetComponent<Learn3Test>();
if (learn3Test3 != null) learn3Test3.TestFun(nameof(learn3Test3));
//只要得到到场景中别的对象或者这个对象身上的脚本,就能获取到这个对象的所有信息
//获取自身多个脚本
Learn3Test[] learn3TestArray = this.GetComponents<Learn3Test>();
print(learn3TestArray.Length);
List<Learn3Test> learn3TestList = new List<Learn3Test>();
this.GetComponents<Learn3Test>(learn3TestList);
print(learn3TestList.Count);
//获取子物体身上的脚本(所有的子物体,无论多层级)
//GetComponentsInChildren默认也会找自身上的脚本,默认是false,失活不找这个脚本
Learn3Test[] Learn3Test4Array = this.GetComponentsInChildren<Learn3Test>(true);
print(Learn3Test4Array.Length);
//获取父物体身上的脚本(所有的父物体,无论多层级)
//GetComponentInParent默认也会找自身上的脚本,默认是false,失活不找这个脚本
Learn3Test learn3Test5 = this.GetComponentInParent<Learn3Test>(true);
if (learn3Test5 != null) learn3Test5.TestFun(nameof(learn3Test5));
//尝试获取脚本
Learn3Test learn3Test6;
bool isGet = this.TryGetComponent<Learn3Test>(out learn3Test6);
print(isGet);
#endregion
}