unity获得运动物体前后时刻的位置坐标pos值

比如获得一个小球运动中前后的坐标

分别用RunStart, RunNext.

1,在Start()里面给RunStart获得初值。

2. Update() 里面RunNext在需要记录的时刻取值。

----------------------------------

3。 在RunStart = RunNext.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class LineMark : MonoBehaviour {



	private GameObject clone;  
	private LineRenderer line;  
	private int i;  
	public GameObject obs;  
	public GameObject run;  
	Vector3 RunStart;
	Vector3 RunNext;

	// Use this for initialization
	void Start () {
		RunStart = run.transform.position;
		clone = (GameObject)Instantiate(obs, run.transform.position, run.transform.rotation);//克隆一个带有LineRender的物体   
		line = clone.GetComponent<LineRenderer>();//获得该物体上的LineRender组件  
//		//line.SetColors(Color.blue, Color.red);//设置颜色  
//		//line.SetWidth(0.2f, 0.1f);//设置宽度  
		i = 0;
	}

	// Update is called once per frame  
	void Update () {  

		RunNext = run.transform.position;

		if (RunStart != RunNext) {
			i++;
			line.SetVertexCount(i);//设置顶点数 
			line.SetPosition(i-1, run.transform.position);
			
		}

		RunStart = RunNext;



		if (Input.GetMouseButtonDown(0))  
		{  
			clone = (GameObject)Instantiate(obs, obs.transform.position, transform.rotation);//克隆一个带有LineRender的物体   
			line = clone.GetComponent<LineRenderer>();//获得该物体上的LineRender组件  
			line.SetColors(Color.blue, Color.red);//设置颜色  
			line.SetWidth(0.2f, 0.1f);//设置宽度  
			i = 0;  
		}  
		if (Input.GetMouseButton(0))  
		{  
			i++;  
			line.SetVertexCount(i);//设置顶点数  
			line.SetPosition(i - 1, Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 15)));//设置顶点位置   
		}  




	}  
}

猜你喜欢

转载自blog.csdn.net/moonlightpeng/article/details/83511407
今日推荐