年前年后都蛮忙的,今天才重拾代码。
今天尝试把卡牌的战斗场景做了,配置了手牌区、抽牌堆。我在编写的过程中发现了问题:每一次抽牌之后需要重新对抽牌堆进行赋值,之后进行洗牌,但是我使用了原卡组只能赋值一次,之后就为原卡组因为赋了值而变为null,下次抽牌的时候就会导致抽牌堆也变为null(两个卡组的类型均为集合),于是我花了一些时间寻找到了许多种复制的方法,最终采用了最简单的一种:
List<Card> playerDeck = new List<Card>(deck.ToArray());
这样就能较为容易的实现复制了。
接下来我认为卡牌的大小在场景中还是太大了,我的打算是削去卡牌的描述,转为只显示卡面和描述、费用。当鼠标悬停在卡牌上时,跟随鼠标的位置显示效果描述。
今天做了悬停时获得信息,得知了OnMouseOver()这个事件函数时当悬停时触发。
void OnMouseOver()
{Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHit hit;if (Physics.Raycast(ray, out hit)){Debug.Log(hit.collider.gameObject.GetComponent<ShowCardInfo>().card.Name);switch (hit.collider.gameObject.GetComponent<ShowCardInfo>().card.Type){case 0://BaseCardvar baseCard = hit.collider.gameObject.GetComponent<ShowCardInfo>().card as BaseCard;Debug.Log(baseCard.Name + baseCard.Damage);break;case 1://SkillCardvar skillCard = hit.collider.gameObject.GetComponent<ShowCardInfo>().card as SkillCard;Debug.Log(skillCard.Name + skillCard.Effect);break;}}
}
今天也和其它人使用了PlasticSCM进行了交接,开始进行多人项目的尝试了!
今天先这样,明天开始就要好好的写代码了!