介绍:
实现工厂流程的传送带传送物体的过程,包过一些基础的知识点。
实现过程
2.1.传送物体左右上下移动
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjectMove : MonoBehaviour {
private Vector3 offset;
public float speed = 6;
void Start () {
offset = GameObject.Find("Conveyer/target").transform.position.normalized;
}
public void OnCollisionStay(Collision other)
{
other.transform.Translate(speed * Time.deltaTime*offset,Space.World);
// other.transform.Translate (new Vector3(speed * Time.deltaTime * offset.x, 0, speed * Time.deltaTime * offset.z));//默认沿着物体的z轴移动,即为前后方向
// other.transform.Translate(other.gameObject.transform.localPosition*offset*speed * Time.deltaTime);
// Debug.Log("触发");
// Debug.Log(other.gameObject.name);
//移向的方法(可用),存在卡顿的情况
// other.gameObject.transform.position= Vector3.MoveTowards(other.gameObject.transform.position, offset, speed * Time.deltaTime);//移向
}
}
2.2.传送带滚轮的旋转
this.transform.Rotate(Vector3.down * speed);
2.3.传送带贴图流动,创建panel,加上贴图
float x;
float y;
float scrollX = 0.2f;//用来调节贴图移动的速度,可适当调大或缩小
void Update ()
{
y = y + Time.deltaTime * scrollX;
GetComponent<Renderer>().material.mainTextureOffset = new Vector2(x, y);
// GetComponent<Renderer>().material.SetTextureOffset("masteria1", new Vector2(x, y));
}
注意贴图的设置