unity中实现城市夜晚汽车流水的效果

这里着重说明unity中怎么用代码控制纹理的偏移和平铺;偏移的纹理可以实现很多流动的效果,如本例中的车流水线……;
这里写图片描述

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

public class roadFlow : MonoBehaviour {

    float roadChange,offset;
    // Use this for initialization
    void Start ()
    {
        if (transform.name == "Road01"||transform.name=="Road04"||transform.name=="Road07")
        {
            offset = 1.3f;
        }
        if (transform.name == "Road02" || transform.name == "Road05" || transform.name == "Road08")
        {
            offset = 1.6f;
        }
        if (transform.name == "Road03" || transform.name == "Road06" || transform.name == "Road09")
        {
            offset = 1.9f;
        }
    }

    // Update is called once per frame
    void Update ()
    {
        //得到纹理的x方向偏移
        // offset = transform.GetComponent<MeshRenderer>().material.GetTextureOffset("_MainTex").x;
        //得到纹理的x方向平铺  
        // offset = transform.GetComponent<MeshRenderer>().material.GetTextureScale("_MainTex").x;
        roadChange += Time.deltaTime*offset;
        //设置纹理偏移  对应offset  返回值vector2
        transform.GetComponent<MeshRenderer>().material.SetTextureOffset("_MainTex", new Vector2(roadChange, 0));

        if (Input.GetKeyDown(KeyCode.A))
        {
            //设置纹理平铺  对应Tiling 返回值vector2
            transform.GetComponent<MeshRenderer>().material.SetTextureScale("_MainTex", new Vector2(2,2));
        }
    }
}

这里写图片描述

猜你喜欢

转载自blog.csdn.net/fenglele_fans/article/details/80678791
今日推荐