一、GameObject是unity的基本对象
二、创建游戏物体的三种方法
- 创建一个空对象
new GameObject("gameObject name");
- 通过其他物体(场景对象、预制体)复制对象。
// 四个参数分别为:源对象,位置坐标,旋转坐标,父对象。
GameObject.Instantiate(GameObject, Vector3, Quaternion, GameObject);
- 创建一个系统内置对象预制体。
// PrimitiveType内包含系统内置的一些游戏对象
GameObject.CreatePrimitive(PrimitiveType);
三、从本地加载资源的方法
// 获取的资源文件必须在Assets下的Resources中,
// 入参string为路径,写路径只需要写Resources下的子路径。
Resources.Load(path);
四、游戏组件
使用AddComponent为对象添加组件
GameObject obj = new GameObject();
// 这里添加一个刚体组件
obj.AddComponent();
使用Destroy为对象移除组件
Destroy(GetComponent());
获取组件的几种方法 注:组件有方法enabled,可以控制组件是否启用
方法描述GetComponent();获取当前对象的对应组件GetComponentInChildren();获取当前对象及子对象中第一个对应组件GetComponentInParent();获取当前对象及父对象中第一个对应组件GetComponents();获取当前对象的所有对应组件GetComponentsInChildren();获取当前对象及子对象中所有对应组件GetComponentsInParent();获取当前对象及父对象中所有对应组件 五、GameObject的成员变量 成员变量说明activeInHierarchy游戏对象在场景中是否处于激活状态。(只读)自身和父物体都要处于激活状态activeSelf游戏对象自身在场景中是否处于激活状态。(只读)仅仅自身是否处于激活状态isStatic游戏对象是否是静态的layer游戏对象在第几图层scene游戏对象所属场景(只读)tag游戏对象的标签如要设置,只能设置已经预定义的标签transform游戏对象的位置组件name游戏对象的名字 六、禁用和启用一个游戏物体使用SetActive来启用或禁用游戏物体
GameObject obj = new GameObject();
// 禁用新生成的游戏物体
obj.SetActive(false);
七、GameObject的静态成员
静态成员说明Destroy(GameObject, float);在若干秒后消除一个对象DestroyImmediate(GameObject);立即消除一个对象,(不建议使用)DontDestroyOnLoad(GameObject);允许一个对象留存到下一个场景FindObjectOfType();查找第一个拥有该组件的对象不查找未激活的对象FindObjectsOfType();查找所有拥有该组件的对象不查找未激活的对象GameObject.Find(string);查找与入参相同名字的一个物体GameObject.FindGameObjectsWithTag(string);查找与入参相同标签的所有物体GameObject.FindGameObjectWithTag(string);查找与入参相同标签的一个物体
八、游戏物体间消息的发送和接收
方法描述SendMessage()只发送给自身的所有组件SendMessageUpwards()发送给自身和所有父组件BroadcastMessage()发送给自身的所有子组件
参数
参数描述string methodName目标函数名object value入参(多个参数用数组入参以及接收)SendMessageOptions options没有接受者时是否报错