Unity2D游戏笔记

1.如何用鼠标控制玩家的转向

Camera.main.ScreenToWorldPoint(Input.mousePosition).x

获取鼠标当前的屏幕x轴坐标与主角的x轴坐标进行对比,若大于则往右转,反之往左。
控制转向的三种方法:
①: transform.localScale(1,0,1)→transform.localScale(-1,0,1)
②:transform.localEulerAngles = new Vector3(0, 0, 0);改变x,y,z相关角度
③: transform.rotation=Quaternion.Euler(0,0,0)同上
小插曲:在测试鼠标点击的坐标时使用了OnMouseDown()的方法,发现这么点都没用。原因是这个方法只检测,当你的鼠标点击到了一个物体,这个物体的脚本中有这个方法才行。也就是说,该方法适用于只会被该脚本附加上的gameobject监控到。而 Input.GetMouseButton()会被任何gameobject检测到。

2.当玩家攻击到敌人产的伤害数字显示

attackDamage = Random.Range(minDamage, maxDamage);

用于设定随机伤害

②设置一个text用于显示数值,text所在的ui画布Canvas一定设置为世界坐标。在这里插入图片描述
③Start()中设置数值的显示时间,即为多少秒后销毁

 Destroy(gameObject, lifeTimer);

Update()中改变数字的y轴,起到一个数字上升的效果

 transform.position += new Vector3(0, upSpeed * Time.deltaTime, 0);

最后写一个方法用于数值类型的转换,因为text中只能显示string 型的

 damageText.text = _amount.ToString();

④:显示数字的方法是在敌人受到伤害即碰撞检测是实例化那个text所存在的画布

DamageNum damagable = Instantiate(DamageCanvas, other.transform.position, Quaternion.identity).GetComponent<DamageNum>();//实例化
damagable.ShowUIDamage(Mathf.RoundToInt(attackDamage));把数值整数化并传递

效果:在这里插入图片描述
学习的视频:https://www.bilibili.com/video/BV1VT4y1G7Vq

发布了3 篇原创文章 · 获赞 8 · 访问量 1841

猜你喜欢

转载自blog.csdn.net/weixin_43821918/article/details/105664716