마지막 게임 제작에 넣어 보충 #게임 제작 2.5

5670 단어 VisualStudio2017Unity
마지막 기사의 보충 정보가 됩니다.

카드는 어떤 역할의 요소입니까?



카드에는 HP나 AT, 화상 등의 기본적인 정보를 보유하고 있어(아래와 같이)

보유 데이터

CardModel.cs
    public Sprite icon;
    public new string name;
    public int hp;
    public int at;
    public bool isDead;

CardModel을 생성했을 때에 불리는 함수 ( 생성자?)
사전에 준비한 ScriptableObject의 정보를 읽어들입니다.

CardModel.cs
    //Entityからカードモデルにデータを送る
    public CardModel(int cardID)
    {
        CardEntity cardEntity = Resources.Load<CardEntity>("CardEntityList/Card"+cardID);
        icon = cardEntity.icon;
        name = cardEntity.name;
        hp = cardEntity.hp;
        at = cardEntity.at;
        isDead = false;
    }


CardView에서 모델로 데이터를 전달하고 그립니다.

CardView.cs
    public void Show(CardModel cardModel)
    {
        // カードデータの受け渡し+描画
        iconImage.sprite = cardModel.icon;
        hpText.text = cardModel.hp.ToString();
        atText.text = cardModel.at.ToString();   
    }


CardController에서 Model을 생성하고 View를 통해 그리는 것 같은 형태를 취하고 있습니다.

CardController.cs
    public void Init(int cardID)
    {
        model = new CardModel(cardID);// 生成
        view.Show(model);// 反映
    }


실제로 카드를 Instantiate 할 때는 이렇게 기술하고 있습니다.

GameManager.cs
        //生成
        CardController card = Instantiate(cardPrehab, position, false);
        card.Init(cardID);

※CardPrehab→카드형의 Prefab

※Position→부모 요소로 하고 싶은 Panel

역할로서는, 대전에 있어서 체력의 관리를 하거나 전투로 승리했을 때 공격력분 데미지를 준다고 말한 적이 있습니다.

어떤 데이터를 어떻게 전달하려고 하지 못했는지



결론부터 말하면 카드 만들기를 별로 변경하지 않고 CardController의 모든 정보를 전달하고 싶습니다. 하지만 현상은 CardController의 형태로 PhotonNetwork.Instantiate를 할 수 없다(CardPrehab에는 빈 형태 밖에 없다 + GameObject형에서는 내부에 데이터를 가질 수 없기 때문에) 때문에 곤란해지고 있던 상태입니다(;´д `) 토호…

턴제이므로 항상 데이터를 많이 송수신 할 예정은 없습니다.
다소 많은 데이터를 보유하고 있어도 문제 없을까 생각하고 있습니다. (얕은 물건이라면 죄송합니다)

이상입니다. 고마워요.

좋은 웹페이지 즐겨찾기