vv 매핑 번개 사슬
13738 단어 Unity
vv 매핑 번개 사슬
코드
using System;
using System.Collections.Generic;
using UnityEngine;
///
/// uv
///
[RequireComponent(typeof(LineRenderer))]
[ExecuteInEditMode]
public class UVChainLightning : MonoBehaviour
{
//
public float detail = 1;// , , 。
public float displacement = 15;// ,
public Transform target;//
public Transform start;
public float yOffset = 0;
private LineRenderer _lineRender;
private List<Vector3> _linePosList;
private void Awake()
{
_lineRender = GetComponent<LineRenderer>();
_linePosList = new List<Vector3>();
}
private void Update()
{
if(Time.timeScale != 0)
{
_linePosList.Clear();
Vector3 startPos = Vector3.zero;
Vector3 endPos = Vector3.zero;
if (target != null)
{
endPos = target.position + Vector3.up * yOffset;
}
if(start != null)
{
startPos = start.position + Vector3.up * yOffset;
}
CollectLinPos(startPos, endPos, displacement);
_linePosList.Add(endPos);
_lineRender.SetVertexCount(_linePosList.Count);
for (int i = 0, n = _linePosList.Count; i < n; i++)
{
_lineRender.SetPosition(i, _linePosList[i]);
}
}
}
// ,
private void CollectLinPos(Vector3 startPos, Vector3 destPos, float displace)
{
if (displace < detail)
{
_linePosList.Add(startPos);
}
else
{
float midX = (startPos.x + destPos.x) / 2;
float midY = (startPos.y + destPos.y) / 2;
float midZ = (startPos.z + destPos.z) / 2;
midX += (float)(UnityEngine.Random.value - 0.5) * displace;
midY += (float)(UnityEngine.Random.value - 0.5) * displace;
midZ += (float)(UnityEngine.Random.value - 0.5) * displace;
Vector3 midPos = new Vector3(midX,midY,midZ);
CollectLinPos(startPos, midPos, displace / 2);
CollectLinPos(midPos, destPos, displace / 2);
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
photonnetwork.instantiate에서 gamepobject 유형을 생성 한 다음 상태 및 값을 참조하는 방법주로 마지막 기사에서 일어난 일의 수정입니다. 지난번↓ 그럼 주제입니다. (타이틀이 정리되어 없어서 죄송합니다) 우선 전회의 Illegal view ID:0입니다만 photonnetwork.instantiate를 사...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.