(Unity)ベルトコンベアーの作成

(1)ベルトが動いているように見せるギミック

(スクリプト)

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

public class MovingWalkway : MonoBehaviour
{
    private MeshRenderer mesh;

    void Start()
    {
        mesh = GetComponent<MeshRenderer>();
    }

    void Update()
    {
        float offset = Time.time * 0.5f;
        mesh.material.SetTextureOffset("_MainTex", new Vector2(0, offset));
    }
}

(実行結果)

  • 模様が前方向に動いているように『見えれ』ば成功です。

 


(2)ベルトコンベアに乗せた物体を移動させる。

(スクリプト)

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

public class MovingWalkway : MonoBehaviour
{
    private MeshRenderer mesh;

    void Start()
    {
        mesh = GetComponent<meshrenderer>();
    }

    void Update()
    {
        float offset = Time.time * 0.5f;
        mesh.material.SetTextureOffset("_MainTex", new Vector2(0, offset));
    }

    // ★追加(物体を移動させる)
    private void OnTriggerStay(Collider other)
    {
        other.transform.Translate(transform.forward * 1.3f * Time.deltaTime);
    }
}

(実行結果)

  • 物体には「Rigidbody」を追加
  • 物体がベルトコンベアの上d運ばれているように見えれば成功