<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem scena</title>
<link>https://forum.pasja-informatyki.pl/tag/scena</link>
<description>Powered by Question2Answer</description>
<item>
<title>Unity - jak uzyskać dostęp do skryptu w obiekcie, który jest klonem?</title>
<link>https://forum.pasja-informatyki.pl/441256/unity-jak-uzyskac-dostep-do-skryptu-w-obiekcie-ktory-jest-klonem</link>
<description>

&lt;p&gt;UNITY 2D C#&lt;/p&gt;



&lt;p&gt;Staram się wyzerować, na kilka sekund,&amp;nbsp;prędkość rotacji w moich obiektach klonach, za każdym razem kiedy wcisnę przycisk, który dodałem do ekranu głównego mojej sceny w Unity. Uważam, że najlepszym rozwiązanie byłoby, aby wyszukać każdy obiekt z określonym tagiem (wszystkie klony mają ten sam tag). Problem polega na tym, że nie działa to w przypadku klonów...
&lt;br&gt;

&lt;br&gt;
&lt;strong&gt;Każdy klon ma dodany skrypt rotacji:&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:csharp;&quot;&gt;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Rotation : MonoBehaviour {

	public float speed;
	public float speed2 = 0f;
	private Rigidbody2D rb2D;



	// Use this for initialization
	void Start () {
		
	}

	// Update is called once per frame
	public void Update () {

		transform.Rotate (0, 0, speed);
	}

	public void Stop (){

		StartCoroutine(SpeedZero());
		Debug.Log (&quot;ZEROOOOO&quot;);
	}

	IEnumerator SpeedZero()
	{
		transform.Rotate (0, 0, speed2);
		yield return new WaitForSeconds(20);
		transform.Rotate (0, 0, speed);
	
	}
}&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Obiekty spawnuję za pomocą skryptu SunSpawner:&lt;/strong&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:csharp;&quot;&gt;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class SunSpawner : MonoBehaviour {

	public GameObject[] theSuns;
	public Transform generationPoint;

	private int sunSelector;
    private float sceneHeight;

    float distance = 0.5f;


	Vector3 maxWidthPoint;
    Vector3 minWidthPoint;

    //Radious base on circle collider radious
    float lastSunRadious = 2f;


	void Start (){
        minWidthPoint = Camera.main.ScreenToWorldPoint(new Vector2(0, Screen.height / 2f));
        maxWidthPoint = Camera.main.ScreenToWorldPoint(new Vector2(Screen.width, Screen.height / 2f));

        float bottom = Camera.main.ScreenToWorldPoint(new Vector2(0, 0)).y;
        float top = Camera.main.ScreenToWorldPoint(new Vector2(0, Screen.height)).y;
        sceneHeight = top - bottom;

        Debug.LogFormat(&quot;Scene height: {0}, minWidthPoint: {1}, maxWidthPoint {2}&quot;, sceneHeight, minWidthPoint, maxWidthPoint);

    }

		
	public void Update (){

		if (transform.position.y &amp;lt; generationPoint.position.y) {

            sunSelector = Random.Range(0, theSuns.Length);
            float currentSunRadious = theSuns[sunSelector].GetComponentInChildren&amp;lt;CircleCollider2D&amp;gt;().radius * theSuns[sunSelector].GetComponentInChildren&amp;lt;CircleCollider2D&amp;gt;().transform.localScale.x * theSuns[sunSelector].transform.localScale.x;
            float distanceBetween = distance + lastSunRadious + currentSunRadious; //Random.Range(lastSunRadious+currentSunRadious, sceneHeight);
            float sunXPos = Random.Range(minWidthPoint.x + currentSunRadious, maxWidthPoint.x - currentSunRadious);

            Vector3 newSunPosition = new Vector3(sunXPos, transform.position.y + distanceBetween, transform.position.z);

            transform.position = newSunPosition;
            lastSunRadious = currentSunRadious;
			Instantiate (theSuns [sunSelector], transform.position, transform.rotation);

		}
	}
		
}

&lt;/pre&gt;



&lt;p&gt;
&lt;br&gt;
Teraz dodałem Canvas i przycisk, w którym chciałem za pomocą funkcji OnClick zatrzymać rotację w każdym obiekcie (klonie), który istnieje a ma określony tag (w moim przypadku jest to &quot;Log&quot;). Jak już napisałem, nie potrafię tego jednak zrobić. Próbowałem kilku rzeczy, stworzyć listę, wyszukać tagu, odwołać się do skryptu Rotation i uruchomić Coroutine, ale nic nie chce działać. Aktualnie nie posiadam żadnego skryptu dodanego do przycisku stop, bo kompletnie już nie wiem, co tu zrobić
&lt;br&gt;

&lt;br&gt;
&lt;strong&gt;Jest ktoś w stanie mi pomóc?
&lt;br&gt;
Będę wdzięczny&amp;nbsp;&lt;/strong&gt;
&lt;br&gt;
&lt;strong&gt;Pozdrawiam&lt;/strong&gt;&lt;/p&gt;</description>
<category>C#</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/441256/unity-jak-uzyskac-dostep-do-skryptu-w-obiekcie-ktory-jest-klonem</guid>
<pubDate>Sun, 21 Jul 2019 11:31:37 +0000</pubDate>
</item>
<item>
<title>Jak zwrócić się do zmiennej z innego skryptu w Unity C#, jak obiekt który posiada skrypt jest na innej scenie?</title>
<link>https://forum.pasja-informatyki.pl/175828/zwrocic-zmiennej-innego-skryptu-unity-obiekt-ktory-posiada-skrypt-jest-innej-scenie</link>
<description>

&lt;p&gt;Witam!&lt;/p&gt;



&lt;p&gt;Mam problem, chciałbym zwrócić się do zmiennej &lt;span style=&quot;color:#008000&quot;&gt;Level2 &lt;/span&gt;typu&lt;span style=&quot;color:#008000&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color:#000080&quot;&gt;bool&lt;/span&gt; ze skryptu &lt;span style=&quot;color:#FF0000&quot;&gt;Menu&lt;/span&gt;,&lt;/p&gt;



&lt;p&gt;skrypt &lt;span style=&quot;color:#FF0000&quot;&gt;Menu&lt;/span&gt; przypisany jest do obiektu też o nazwie &lt;span style=&quot;color:#800080&quot;&gt;Menu&lt;/span&gt;, ale&amp;nbsp; ten obiekt znajduję się na innej scenie.&lt;/p&gt;



&lt;p&gt;Proszę o jak najszybsze odpowiedzenie na moje pytanie.&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>C#</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/175828/zwrocic-zmiennej-innego-skryptu-unity-obiekt-ktory-posiada-skrypt-jest-innej-scenie</guid>
<pubDate>Fri, 02 Sep 2016 16:00:45 +0000</pubDate>
</item>
</channel>
</rss>