// Start is called before the first frame update void Start() { for (int i = 0; i < 4; i++) { GameObject anPlayer; if (i == myPlayerIndex) { anPlayer = Instantiate(playerPrefab, solarSystemTransform); GameObject.FindWithTag("MainCamera").GetComponent <DampCamera2D>().target = anPlayer.transform; } else { anPlayer = Instantiate(enemyPrefab, solarSystemTransform); } anPlayer.transform.Find("Planet").Rotate(0, Random.Range(0, 350f), 0); OrbitMotion playerOrbitMotion = anPlayer.GetComponent <OrbitMotion>(); playerOrbitMotion.orbitPath.xAxis = _lastOrbitSize.x += Random.Range(0.4f, 1f); //I hope this works ;) playerOrbitMotion.orbitPath.yAxis = _lastOrbitSize.y += Random.Range(0.4f, 1f); playerOrbitMotion.orbitProgress = Random.Range(0f, 1f); playerOrbitMotion.orbitPeriod = Random.Range(15f, 40f); playerOrbitMotion.enabled = true; // Runtime enabiling is a workaround for planet mesh being created in WORLD space 0,0,0. Fix this later! } }
private void OnTriggerEnter2D(Collider2D collision) { GameObject obj = collision.gameObject; if (type == "PlayerField" && obj.tag == "Collectable" && obj.GetComponent <OrbitMotion>().orbitActive == false && obj.GetComponent <MoonScript>().releasetimer == 0) { //Add the moon to the orbit obj.transform.parent = parent.transform; OrbitMotion newcircle = obj.GetComponent <OrbitMotion>(); newcircle.orbitPath = new Ellipse((2f + sizemod) / 2, (2f + sizemod) / 2); newcircle.orbitProgress = FindDegree(obj.transform.localPosition.x, obj.transform.localPosition.y) / 360; newcircle.orbitActive = true; sizemod += 1f; newcircle.orbitPeriod = sizemod + 3f; newcircle.enabled = true; //Add the moon to the planet controls this.parent.GetComponent <PlayerMovement>().claimedObjects.Add(obj); if (this.parent.GetComponent <PlayerMovement>().player == 1) { obj.transform.GetChild(1).GetComponent <TextMesh>().text = this.parent.GetComponent <PlayerMovement>().claimedObjects.Count.ToString(); } else if (this.parent.GetComponent <PlayerMovement>().player == 2) { obj.transform.GetChild(1).GetComponent <TextMesh>().text = "N" + this.parent.GetComponent <PlayerMovement>().claimedObjects.Count.ToString(); } updateRange(); } }
// Start is called before the first frame update void Start() { _orbitMotion = GetComponent <OrbitMotion>(); _trajectoriesContainer = transform.parent.Find("Trajectories"); _ellipse = Instantiate(TrajectoryGameObject, _trajectoriesContainer).GetComponent <EllipseRenderer>(); _ellipse.ellipse = _orbitMotion.orbitPath; _ellipse.CalculateEllipse(); }
void Awake() { //This is the Render of the actual Ellipse that will show the orbiting path lr = GetComponent <LineRenderer>(); om = GetComponent <OrbitMotion>(); ellipse.xAxis = om.orbitPath.xAxis; ellipse.yAxis = om.orbitPath.yAxis; CalculateEllipse(); }//End Awake
public void SetPlanetPositions(GameObject go, Planet p) { PlanetSelfRotate rotate = go.GetComponent <PlanetSelfRotate>(); rotate.dampAmt = p.dampAmt; rotate.rotationSpeed = p.rotationSpeed; OrbitMotion orbit = go.GetComponent <OrbitMotion>(); //Sets orbit position to account for time passed while not in solar system scene p.orbitProgress = (((float)PlanetController.instance.timePassed / (float)p.orbitPeriod) + p.orbitProgress) % 1; orbit.orbitProgress = p.orbitProgress; orbit.orbitPeriod = p.orbitPeriod; orbit.orbitPath.xAxis = p.orbitPathX; orbit.orbitPath.yAxis = p.orbitPathY; orbit.orbitPath.zAxis = p.orbitPathZ; GameObject planetModelInstance = null; if (p.isMoon) { planetModelInstance = Instantiate(planetModel, new Vector3(0, 0, p.zOffset), Quaternion.identity); planetModelInstance.transform.SetParent(go.transform); planetModelInstance.GetComponent <Hexsphere>().setWorldScale( p.worldScale / p.orbiting.worldScale); } else { planetModelInstance = Instantiate(planetModel, new Vector3(0, 0, p.zOffset), Quaternion.identity, go.transform); } planetModelInstance.GetComponent <Hexsphere>().planet = p; planetModelInstance.GetComponent <Hexsphere>().planetID = PlanetController.currentPlanetID++; planetModelInstance.GetComponent <Hexsphere>().GroupMaterials_Hex[0] = PlayerStatController.instance.isUnlocked(p) ? p.planetHexMaterial : p.lockedMaterial; planetModelInstance.GetComponent <Hexsphere>().GroupMaterials_Pent[0] = PlayerStatController.instance.isUnlocked(p) ? p.planetPentMaterial : p.lockedMaterial; planetModelInstance.GetComponentInChildren <NavigationManager>().pathRenderer = go.GetComponent <LineRenderer>(); planetModelInstance.name = $"{p.planetName}Model (Instance)"; orbit.orbitingObject = planetModelInstance.transform; rotate.rotatingObject = planetModelInstance.transform; PlanetCenterInfo newPlanet = go.GetComponent <PlanetCenterInfo>(); newPlanet.planet = p; }
private void OnTriggerExit2D(Collider2D collision) { GameObject obj = collision.gameObject; if (type == "MoonField" && obj.tag == "Projectile" && obj.GetComponent <OrbitMotion>().orbitActive == false && obj.GetComponent <ProjScript>().releasetimer == 0) { obj.transform.rotation = Quaternion.identity; //Add the projectile to the orbit obj.transform.parent = parent.transform; OrbitMotion newcircle = obj.GetComponent <OrbitMotion>(); newcircle.orbitPath = new Ellipse(1f, 1f); newcircle.orbitProgress = FindDegree(obj.transform.localPosition.x, obj.transform.localPosition.y) / 360; newcircle.orbitPeriod = 2f; newcircle.orbitActive = true; newcircle.enabled = true; //Add the projectile to the moon list this.parent.GetComponent <MoonScript>().claimedObjects.Add(obj); } }
/// <summary> /// We are simply creating a reference to whatever object it is that we currently have selected. (Must have Orbitmotion.cs compenent) /// </summary> void OnEnable() { orbMotion = (OrbitMotion)target; }
public void onClick() { smass = massField.text; stemp = tempField.text; sradio = radioField.text; mass = int.Parse(smass); temp = int.Parse(stemp); radio = int.Parse(sradio); if (!hasStar || (!parameterStarOK(mass, temp, radio))) { Debug.Log("Entrou if1"); if (!parameterStarOK(mass, temp, radio) || numPlanets >= MAXN_PLANETS) { text.text = "Planets can have a surface with low temperature." + " Interesting notice that they can have their nucleo with" + " higher temperatures.For exemple, here in our Solar System" + " there is Neptune with - 218 ºC in his atmosphere, but has a" + " much hotter nucleo around 7000ºC"; } else { //start value of SUN //sun.GetComponent<BehaviourScript>().mass = mass; //sun.GetComponent<BehaviourScript>().temp = temp; //sun.GetComponent<BehaviourScript>().radio = radio; text.text = "\n\nStar Created!"; // create new SUN sun = Instantiate(corChoose(temp), new Vector3(0, 0, 0), new Quaternion(0, 0, 0, 100)); sun.transform.localScale = (new Vector3(1, 1, 1)) * radio; sun.AddComponent <HeavenlyBody>(); //Instantiate(go[0], new Vector3(0, 0, 0), new Quaternion(0, 0, 0, 100)); hasStar = true; GameObject.Find("CreateButton").GetComponentInChildren <Text>().text = "Create Planet!"; } // GameObject.Find("CreateStar").SetActive(false); } else { //there is a star and we know parameters is ok smassP = massField.text; stempP = tempField.text; sradioP = radioField.text; massP = int.Parse(smassP); tempP = int.Parse(stempP); radioP = int.Parse(sradioP); if (parameterPlanetOk(massP, tempP, radioP)) { // create this new planet go[numPlanets] = Instantiate(planet, new Vector3(orbit, 0, orbit), new Quaternion(0, 0, 0, 0)); orbit += 50; // set values of my new planet go[numPlanets].transform.localScale = (new Vector3(1, 1, 1)) * radioP; go[numPlanets].AddComponent <HeavenlyBody>(); OrbitMotion temp = go[numPlanets].AddComponent <OrbitMotion>(); temp.orbitPath = new Ellipse(go[numPlanets].transform.position.x, go[numPlanets].transform.position.z); numPlanets++; text.text = "Planet Created!"; } else { text.text = "Impossible! Heaven is our limit"; } } }
void Start() { motion = GetComponent <OrbitMotion>(); transform.eulerAngles = new Vector3(0, 0, axialTilt); }