Unity3d:LineRenderer模拟英雄攻击范围圆圈:

128 篇文章 1 订阅
64 篇文章 1 订阅

圆圈攻击范围:使用LineRenderer模拟圆圈攻击范围:新建场景,新建一个Cube,此脚本挂在Cube上;

  1. public class DrawCircle : MonoBehaviour {
  2.     
  3.     void Start()
  4.     {
  5.         
  6.     }
  7.  
  8.     void Update()
  9.     {
  10.         if (Input.GetKeyDown(KeyCode.S))
  11.         {
  12.             ToDrawCircle(transform,transform.localPosition, 3);
  13.         }
  14.         
  15.     }
  16. //获取LineRenderer组件
  17.     private static LineRenderer GetLineRenderer(Transform t)
  18.     {
  19.         LineRenderer lr = t.GetComponent<LineRenderer>();
  20.         if (lr == null)
  21.         {
  22.             lr = t.gameObject.AddComponent<LineRenderer>();
  23.         }
  24. //设置宽度
  25.         lr.startWidth = 0.1f;
  26.         lr.endWidth = 0.1f;
  27. //设置颜色
  28.         //lr.startColor = Color.red;
  29.         //lr.endColor = Color.red;
  30.         return lr;
  31.     }
  32.  
  33.     /// <summary>
  34.     /// 画圆圈
  35.     /// </summary>
  36.     /// <param name="transform"></param>//lineRenderer组件
  37.     /// <param name="localPosition"></param>//lineRenderer组件要出生的位置
  38.     /// <param name="attackDistance"></param>//圆圈半径
  39.     private void ToDrawCircle(Transform t, Vector3 center, float radius)
  40.     {
  41.         LineRenderer lr = GetLineRenderer(t);
  42.         int pointAmount = 100;//顶点数量,越多越丝滑
  43.         float eachAngle = 360f/pointAmount;//角度,越小越丝滑
  44.         Vector3 forward = t.forward;//Z轴方向
  45.         lr.positionCount = (pointAmount + 1);//设置顶点【SetVertexCount(pointAmount + 1)弃用】
  46.         for (int i = 0; i <= pointAmount; i++)
  47.         {
  48.             Vector3 pos = Quaternion.Euler(0, eachAngle * i, 0f) * forward * radius + center;//依次设置点
  49.             lr.SetPosition(i, pos);
  50.         }
  51.     }
  52. }
     
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值