![2528994-4bfe3058a6465208.png](https://i-blog.csdnimg.cn/blog_migrate/177427addf3e6dd16256a87ac3c7ddd8.png)
MagicShield.png
![2528994-5aa60b278f654f5d.gif](https://i-blog.csdnimg.cn/blog_migrate/4543c4c0ef2505ef51c51ef9f6caefc7.gif)
MagicShield3.gif
![2528994-7ceb3ccbbe325f5a.gif](https://i-blog.csdnimg.cn/blog_migrate/c8845450005ebea1447ccc9c3e54e5f9.gif)
MagicShield.gif
C#脚本代码(需要导入DOTween插件):
这个脚本用于监听检测球体的射线碰撞事件,然后把碰撞的点存到数组里传给shader
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
public class MagicShield : MonoBehaviour {
public Material shieldMaterial;
public int pointsCount = 20;
public float pointRange = 0.5f;
public float inTime = 0.5f;
public float outTime = 0.5f;
public Ease ease;
public List<HitPoint> hitPoints = new List<HitPoint>();
public List<Vector4> vecArray = new List<Vector4>();
void Start () {
for (int i = 0; i <