问题描述
此代码有错误,我不知道.
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;
}
}
--------------------------
--------------------------
推荐答案
使用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#帮帮我的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!