遗产C#帮帮我 [英] heritage c# help me

查看:84
本文介绍了遗产C#帮帮我的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此代码有错误,我不知道.

this code has a error, i don't know that.

公共类Controlador:MonoBehaviour {

    [Header("Tipos de Planetas")]
   公共GameObject [] Planetas;
    GameObject [] PlanetasInstanciados =新的GameObject [100];

    //启动es elmétodocon en que se empieza al ejecutar.重要提示:
    void Start(){
        instanciarPlanetas();
}

    void instanciarPlanetas()
    {
        for(int i = 1; i< = 100; i ++)
        {
            int r = Random.Range(1,100);
           如果(r< = 30)
            { 
                PlanetasInstanciados [i-1] =实例化(Planetas [0]); 
                PlanetasInstanciados [i-1] .GetComponent< PlanetaRocoso>().SetNumeroPlaneta(i);
                PlanetasInstanciados [i-1] .GetComponent< PlanetaRocoso>().Setmaterial(Random.Range(0,1));
            }
           其他
            { 
                PlanetasInstanciados [i-1] =实例化(Planetas [1]);                
                PlanetasInstanciados [i-1] .GetComponent< PlanetaGaseoso>().SetNumeroPlaneta(i);
                PlanetasInstanciados [i-1] .GetComponent< PlanetaGaseoso>().Setmaterial(Random.Range(0,4));
            }
        }
    }

}

public class Controlador : MonoBehaviour {

    [Header("Tipos de Planetas")]
    public GameObject[] Planetas;
    GameObject[] PlanetasInstanciados = new GameObject[100];

    //Start es el método con en que se empieza al ejecutar. IMPORTANTE que se llame así.
    void Start () {
        instanciarPlanetas();
}

    void instanciarPlanetas()
    {
        for (int i = 1; i <= 100; i++)
        {
            int r = Random.Range(1, 100);
            if (r<=30)
            { 
                PlanetasInstanciados[i - 1]= Instantiate(Planetas[0]); 
                PlanetasInstanciados[i - 1].GetComponent<PlanetaRocoso>().SetNumeroPlaneta(i);
                PlanetasInstanciados[i - 1].GetComponent<PlanetaRocoso>().Setmaterial(Random.Range(0, 1));
            }
            else
            { 
                PlanetasInstanciados[i - 1] = Instantiate(Planetas[1]);                
                PlanetasInstanciados[i - 1].GetComponent<PlanetaGaseoso>().SetNumeroPlaneta(i);
                PlanetasInstanciados[i - 1].GetComponent<PlanetaGaseoso>().Setmaterial(Random.Range(0, 4));
            }
        }
    }

}

---------------------------------------------------

-----------------------------------------------

使用UnityEngine;
使用System.Collections;


//Clase Padre de la herencia.
公共课程Planeta:MonoBehaviour {

    //Sus变量tienen que ser受保护的para que sean accesibles por las clases hijo
   受保护的int numeroPlaneta;
   受保护的浮子DistanciaAlCentro;
   保护浮标Masa;
   受保护的浮动直径;

    //UN UN的El material ha de ser PUBLIC para poder acceder
    //材料选择数组,材料选择行星
   公共资料[]资料;

    //实用的功能.
   公共无效SetNumeroPlaneta(int i)
    {
        numeroPlaneta = i;
    }
   公共  void Setmaterial(int i)
    {
        //Fijate en la sintaxis,市长/menor(<>),括号,等等...
        GetComponent< MeshRenderer>().material = materiales [i];
    }

   公共  void Posicion()
    {
        //转变. las coordenadas del游戏对象y le asignas las coordenadas del
        //nuevo向量r.
        Vector3 r =新Vector3(Random.Range(-50,50),Random.Range(-50,50),Random.Range(-50,50));
        transform.position = r;
    }

}

using UnityEngine;
using System.Collections;


//Clase Padre de la herencia.
public class Planeta : MonoBehaviour {

    //Sus variables tienen que ser PROTECTED para que sean accesibles por las clases hijo
    protected int numeroPlaneta;
    protected float DistanciaAlCentro;
    protected float Masa;
    protected float diametro;

    //El material ha de ser PUBLIC para poder acceder desde UNITY
    //Array de materiales para la seleccion aleatoria del material del planeta
    public Material[] materiales;

    //Funciones que todas las clases hijo  van a utilizar.
    public void SetNumeroPlaneta(int i)
    {
        numeroPlaneta = i;
    }
    public  void Setmaterial(int i)
    {
        //Fijate en la sintaxis, mayor/menor (<>), parentesis, etc...
        GetComponent<MeshRenderer>().material = materiales[i];
    }

    public  void Posicion()
    {
        //transform. a las coordenadas del game object y le asignas las coordenadas del 
        //nuevo vector r.
        Vector3 r = new Vector3(Random.Range(-50, 50), Random.Range(-50, 50), Random.Range(-50, 50));
        transform.position = r;
    }

}

--------------------------

--------------------------


推荐答案

哦,是的,您使用以下代码:

Oh yes, you use this code:

使用UnityEngine;
使用System.Collections;

公共课程PlanetaGaseoso:Planeta {

    //En las clases hijos las variables儿子privadas.
    private int nLunas;

    void Start(){
        DistanciaAlCentro = Random.Range(2,100);
        nLunas = Random.Range(10,50);
        Masa = Random.Range(10,400);
        diametro = Mathf.Pow(Masa * 10,0.25f);
        gameObject.transform.localScale = new Vector3(diametro,diametro,diametro);
        Posicion();
    }

}

using UnityEngine;
using System.Collections;

public class PlanetaGaseoso : Planeta {

    //En las clases hijos las variables son privadas.
    private int nLunas;

    void Start () {
        DistanciaAlCentro = Random.Range(2, 100);
        nLunas = Random.Range(10, 50);
        Masa = Random.Range(10, 400);
        diametro = Mathf.Pow(Masa * 10, 0.25f);
        gameObject.transform.localScale = new Vector3(diametro, diametro, diametro);
        Posicion();
    }

}

--------------------------------------

--------------------------------------


这篇关于遗产C#帮帮我的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆