私は、バーストをクリックするとPinata GameObjectを作成しようとしています。さまざまなイメージと動作のギフトゲームオブジェクトの可変数を与えています。アクション時のスプライトのスプライト
私はまた、このユニティ・ボキャブラリーがユニテイ・ドックでこれを調べるためにどのようなものなのかよくわかりません。
誰でも私に手を貸してくれますか?ありがとう!
私は、バーストをクリックするとPinata GameObjectを作成しようとしています。さまざまなイメージと動作のギフトゲームオブジェクトの可変数を与えています。アクション時のスプライトのスプライト
私はまた、このユニティ・ボキャブラリーがユニテイ・ドックでこれを調べるためにどのようなものなのかよくわかりません。
誰でも私に手を貸してくれますか?ありがとう!
これにはいくつかの方法があります。 簡単な方法は、Object.Instantiateを使用することです。オブジェクトインスタンシエーションは、後で行うボキャブです。 これは、あらかじめ定義されたUnityオブジェクトのコピーを作成します。これは、gameObjectオブジェクトまたはUnityEngine.Objectから派生した他のオブジェクトです。詳細はhttps://docs.unity3d.com/ScriptReference/Object.Instantiate.htmlを確認してください。
あなたのケースでは、あなたのPinataには、プレハブの配列またはリストがあります。これらのプレハブは、それぞれが特定の動作とスプライトで作成します。 Pinataが破裂すると、Pinataを囲むランダムな位置でランダムなプレハブをインスタンス化します。これらの線に沿って
何かがトリックを行う必要があります:あなたはゲームが矛盾しないようにしたい場合は、心の中で
class Pinata : Monobehaviour
{
public GameObject[] pickupPrefabs;
public int numberOfItemsToSpawn; //This can be random
//any other variables that influence spawning
//Other methods
public void Burst()
{
for(int i = 0; i < numberOfItemsToSpawn; i++)
{
//Length - 1 because the range is inclusive, may return
//the length of the array otherwise, and throw exceptions
int randomItem = Random.Range(0, pickupPrefabs.Length - 1);
GameObject pickup = (GameObject)Instantiate(pickupPrefabs[randomItem]);
pickup.transform.position = transform.position;
//the position can be randomised, you can also do other cool effects like apply an explosive force or something
}
}
}
ベアを、あらかじめ定義されたスプライトが所有し、各行動のプレハブが持っているだろう、これはランダム化されないであろう。無作為化された唯一のものは産卵と位置づけです。あなたが行動のためのスプライトをランダム化したかったのなら、あなたはピニャータクラスにこれを追加する必要があるだろう
:
public class Pinata : Monobehaviour
{
//An array of all possible sprites
public Sprite[] objectSprites;
public void Burst()
{
//the stuff I mentioned earlier
int randomSprite = Random.Range(0, objectSprites.Length - 1);
SpriteRenderer renderer = pickup.GetComponent<SpriteRenderer>();
//Set the sprite of the renderer to a random one
renderer.sprite = objectSprites[randomSprite];
float flip = Random.value;
//not essential, but can make it more random
if(flip > 0.5)
{
renderer.flipX = true;
}
}
}
あなたは、すべてあなたのランダムなニーズにhttps://docs.unity3d.com/ScriptReference/Random.html
をユニティランダムを使用することができますうまくいけば、これは正しい方向にあなたを導きます。
超クールです。ありがとう! –