iT邦幫忙

2021 iThome 鐵人賽

DAY 26
0
Software Development

從零開始了解Unity或Unreal Engine應用於VR軟體開發系列 第 26

Day 26.

更新: Bug解掉了,在第28天


今天真的沒辦法思考..

還沒抓到昨天的錯誤是為什麼,然後接下來的學習歷程要學什麼還不太確定(列表)

只好先把當時的c#檔先留著。

//LineRendererSettings.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;



public class LineRendererSettings : MonoBehaviour
{
	public GameObject panel;
	public Image img;
	public Button btn;

	[SerializeField] LineRenderer rend;
	Vector3[] points;

    // Start is called before the first frame update
    void Start()
    {
        rend = gameObject.GetComponent<LineRenderer>();

        points = new Vector3[2];

        points[0] = Vector3.zero;

        points[1] = transform.position + new Vector3(0, 0, 20);

        rend.SetPositions(points);
        rend.enabled = true;
        img = panel.GetComponent<Image>(); // wrong?
    }

    // Update is called once per frame
    void Update()
    {
        AlignLineRenderer(rend);
        if (AlignLineRenderer(rend) && Input.GetAxis("Submit") > 0)
        	btn.onClick.Invoke();
    }

    public LayerMask layerMask;

    public bool AlignLineRenderer(LineRenderer rend)
    {
    	bool hitBtn = false;
    	Ray ray;
    	ray = new Ray(transform.position, transform.forward);
    	RaycastHit hit;

    	if (Physics.Raycast(ray, out hit, layerMask))
    	{
    		points[1] = transform.forward + new Vector3(0, 0, hit.distance);

    		rend.startColor = Color.red;
    		rend.endColor = Color.red;
    		btn = hit.collider.gameObject.GetComponent<Button>();
    		hitBtn = true;
    	}
    	else
    	{
    		points[1] = transform.forward + new Vector3(0, 0, 20);

    		rend.startColor = Color.green;
    		rend.endColor = Color.green;
    	}

    	rend.SetPositions(points);
    	rend.material.color = rend.startColor;
    	return hitBtn;
    }

    public void ColorChangeOnClick()
    {
    	if (btn != null)
    	{
    		if (btn.name == "red_btn")
    			img.color = Color.red;
    		else if (btn.name == "blue_btn")
    			img.color = Color.blue;
    		else if (btn.name == "green_btn")
    			img.color = Color.green;
    	}
    }

}


上一篇
Day 25. VR菜單3
下一篇
Day 28. 解掉bug了
系列文
從零開始了解Unity或Unreal Engine應用於VR軟體開發31

尚未有邦友留言

立即登入留言