Unity(GameObject)

####1. 这个方法用于发送一个数据到指定的方法中,第三个参数是是否强制接收

以下三种方法发送消息的形式,各有不同的效果,可以通过第一个参数指定要发送的方法名名,第二个是发送的参数值,第三个参数是是否强制需要接受,不然就报错。此方法会让对应游戏对象下的所有脚本都会接收到这个发送的消息通知,并且如有接收函数就进行接收处理。

public class ExampleClass : MonoBehaviour {
    void ApplyDamage(float damage) {
        print(damage);
    }
    void Example() {
        gameObject.SendMessage("ApplyDamage", 5.0F);//发送一个消息,发送给当前对象的所有脚本中
        gameObject.SendMessageUpwards("ApplyDamage", 5.0F);//发送一个消息,发送给当前对象以及其上面的所有对象
        gameObject.BroadcastMessage("ApplyDamage", 5.0F); //发送一个消息,发送包括当前对象以及以下的所有子对象
    }
}
复制代码

####2 创建GmaeObject对象

void Start() {
        GameObject plane = GameObject.CreatePrimitive(PrimitiveType.Plane);
        GameObject cube = GameObject.CreatePrimitive(PrimitiveType.Cube);
        cube.transform.position = new Vector3(0, 0.5F, 0);
        GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
        sphere.transform.position = new Vector3(0, 1.5F, 0);
        GameObject capsule = GameObject.CreatePrimitive(PrimitiveType.Capsule);
        capsule.transform.position = new Vector3(2, 1, 0);
        GameObject cylinder = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
        cylinder.transform.position = new Vector3(-2, 1, 0);
    }
复制代码

####3 根据名字查找对应的空间游戏对象

void Example() {
        GameObject hand = GameObject.Find("Hand");
        hand.name;
}
复制代码

####4 Instantiate克隆生成游戏对象

using UnityEngine;

public class InstantiateExample : MonoBehaviour
{
    public GameObject prefab;

    void Start()
    {
        for (int i = 0; i < 10; i++)
            Instantiate(prefab, new Vector3(i * 2.0f, 0, 0), Quaternion.identity);
    }
}
复制代码

转载于:https://juejin.im/post/5b3ac62e51882562302c404a

原文地址:https://www.cnblogs.com/twodog/p/12136587.html