각 플레이어가 게임을 시작하기 전에 영웅을 선택하고 선택한 영웅을 전투장으로로드하는 여러 플레이어 용 게임이 있습니다.UNITY C# : 사용자 선택에 따라 캐릭터 프리 패브를 생성합니다.
나는 선수 내가 문자를 산란을 위해이 방법의 정확한 숫자에 산란을하기 위해 인스턴스를 얻기에 작은 문제가 : 선택된 영웅 카드의 금액에 대한
private void Placement()
{
for (int i = 0; i < SelectedCards.Count; i++)
{
for (int t = 0; t < AvailableHeroes.Count; t++)
{
if (AvailableHeroes[t].name == SelectedCards[i].name)
{
Debug.Log(AvailableHeroes[t]);
// Instantiate(AvailableHeroes[t], PlayerSpawnLocation[t].transform.position, transform.rotation);
}
{
}
}
}
}
이 스크립트를 확인하고에 넣는다 (prefabs)에서 선택할 수있는 모든 영웅을 가지고 내 목록. debug.log는 올바른 영웅 만 호출된다는 것을 보여줍니다. 인스턴스화는 선택한 금액 대신 영웅의 전리품을 산란시킵니다.
{
private int playerSize; //amount of choices for card selection
private GameManager GM;
[Header("Lists for Spawning in Heroes")]
public List<GameObject> SelectedCards;
public List<GameObject> AvailableHeroes;
public List<Transform> PlayerSpawnLocation;
[Header("Canvas used for the game")]
public Transform GameCanvas;
public Transform CharacterCanvas;
//When scene starts it takes how many players will be picking a card.
void Start()
{
//connects this script with gamenmanager to be able to manipulate the cameras
GM = GameObject.Find("GameManager").GetComponent<GameManager>();
//gets playersize information from main menu selection
PlayerPrefs.GetInt("PlayerSize");
playerSize = PlayerPrefs.GetInt("PlayerSize");
SelectedCards = new List<GameObject>();
//enables/disables correct canvas not to cause any problems when we initiate this scene
GameCanvas.gameObject.SetActive(false);
CharacterCanvas.gameObject.SetActive(true);
}
// Update is called once per frame
void Update()
{
if (playerSize <= 0)
{
Placement();
GM.CharacterSelectionCamera.enabled = false;
GameCanvas.gameObject.SetActive(true);
CharacterCanvas.gameObject.SetActive(false);
GM.BattleCamera.enabled = true;
}
}
public void PlayerSelected(int cardPicked)
{
playerSize -= cardPicked;
}
private void Placement()
{
for (int i = 0; i < SelectedCards.Count; i++)
{
for (int t = 0; t < AvailableHeroes.Count; t++)
{
if (AvailableHeroes[t].name == SelectedCards[i].name)
{
Debug.Log(AvailableHeroes[t]);
// Instantiate(AvailableHeroes[t], PlayerSpawnLocation[t].transform.position, transform.rotation);
}
{
}
}
}
}
}
은 내가이 문제 하겠어 어디에 누군가가 설명 할 수 있기를 바랍니다 : 명확성을 위해
나는 전체 클래스를 연결합니다. 감사합니다,
멀티 플레이어 게임의 경우 필요한 모든 것은 다음과 같습니다. https://www.youtube.com/watch?v=2cYfGT2HK0g –