Unity10--炮台发射子弹程序、Transform维护父子关系

一、创建个.LookAtDemo01文件 

     publicTransform target;                //定义目标

     publicGameObject bulletPrafab; //子弹

     publicTransform shootPoint;       //炮口射击点在炮口建立一个空对象

 

void Update () {

      transform.LookAt(target);         //看着目标---文件给了炮台圆,炮台跟着目标转,圆柱体炮管是圆球的子物体,一起旋转

     GameObject bullet = GameObject.Instantiate(bulletPrafab,shootPoint.position, transform.rotation) asGameObject;//子弹、射击点、变换旋转

      Destroy(bullet, 2);   //子弹毁灭2秒之后

}

二、再创建个 BulletMove文件

 //BulletMove文件 是子弹移动文件--赋值给子弹小球,左边创建个球,改名,上色,拖到Asses


 publicfloat speed = 2;

  void Update () {

        transform.Translate(transform.forward *Time.deltaTime * speed, Space.World);

 }

三、Transform维护父子关系

创建个TransformParentAndSon文件

父子关系

    publicTransform obj1;      //cube1--

    publicTransform  obj2;     //cube2

    publicTransform obj3;      //---设置cube1的干儿子胶囊体和cube2齐名

    //6对应的程序

    publicTransform obj4;


1.void Start () {

     //1.理解

     Debug.Log(transform.name);       //在Unity面板创建的空对象GameManger 挂载谁身上,对象就是谁,在这里添obj1,obj2;

     Debug.Log(obj1.transform.name);  //cube1

     Debug.Log(obj2.name);                 //打印出cube2

    

    //2.Sphere下嵌套cube1, cube1 下嵌套cube2   cube2是cube1的子物体

        Debug.Log("祖先"+obj2.root);        //Sphere

        Debug.Log("父亲" + obj2.root);      //cube1

 

        //3.设置胶囊体作为cube1的子物体

        obj3.parent = obj1;

        obj3.SetParent(obj1);

      

        //4.获取游戏对象的子物体的个数

        Debug.Log("obj1的儿子有:" + obj1.childCount + "");

    

        //5.遍历游戏对象的儿子的名字

        int count = obj1.childCount;

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

        {

            Transform child = obj1.GetChild(i);

           Debug.Log(child.name);

        }

 

        //6.分离子物体,只影响一代

        obj4.DetachChildren();

}





你可能感兴趣的:(Unity3D)