unity 实时画曲线

今天写了一个实时画曲线的功能,主要是想用于显示车辆的100公里加速,这里指写了一个测试还没能和主程序关联上

 

using UnityEngine;
using System.Collections;
using System;
using System.Collections.Generic;
public class CurveTest : MonoBehaviour {
    public Material material; 
    private float _speed=0;
    private float _timeA=0;
    private float _timeB=0;
    private bool _isPlay=false;
    
    private LineRenderer lineRenderer;  
    //定义一个Vector3,用来存储鼠标点击的位置  
    private Vector3 position;  
    //用来索引端点  
    private int index = 0;  
    //端点数  
    private int LengthOfLineRenderer=0;
    
    //private float[] _arrSpeed;
    private ArrayList _arrSpeed=new ArrayList();
    private int _speedIndex;
    // Use this for initialization
    void Start(){
        InvokeRepeating("OnTimer", 1, 0.1f);
        //添加LineRenderer组件  
        lineRenderer = gameObject.AddComponent<LineRenderer>();  
        //设置材质  
        lineRenderer.material = material;  
        //设置颜色  
        lineRenderer.SetColors(Color.red, Color.yellow);  
        //设置宽度  
        lineRenderer.SetWidth(0.5f, 0.5f);  


    }
    
    // Update is called once per frame
    void Update () {
        lineRenderer = GetComponent<LineRenderer>(); 
        if(Time.timeScale==1){
            if(Input.GetKey(KeyCode.W)){
                _speed+=(110-_speed)/200;
                _isPlay=true;
            }else{
                _speed-=0.1f;
            }
            if(_speed<0){
                _speed=0;
            }else if(_speed>100){
                _speed=100;
                _isPlay=false;
                Time.timeScale=0;
                OnEnd();
            }
            if(_isPlay){
                _timeA = (_timeA+Time.deltaTime);
                _timeB=(Mathf.CeilToInt (_timeA));
            }
        }
        

    }
    void OnGUI(){
        GUILayout.Label(""+_speed);
        GUILayout.Label(""+_timeB);
    }
    void OnTimer(){
        if(Mathf.CeilToInt(_speed)>0){
            _arrSpeed.Add(Mathf.CeilToInt(_speed));
            _speedIndex+=1;
            position=new Vector3(_speedIndex,_speed/2,0);
             //端点数+1  
            LengthOfLineRenderer++;  
            //设置线段的端点数  
            lineRenderer.SetVertexCount(LengthOfLineRenderer); 
            while (index < LengthOfLineRenderer)  
        {     
            //两点确定一条直线,所以我们依次绘制点就可以形成线段了  
            lineRenderer.SetPosition(index, position);  
            index++;  
        } 
            
        }
    }
    void OnEnd(){
        foreach(object o in _arrSpeed)
        {
            Debug.Log(o);
            gameObject.AddComponent ("SimpleCurve");
            
        }
    }

}

 

 

 

转载于:https://www.cnblogs.com/sy88/p/3387296.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值