使用LineRenderer製作簡易的寫字板
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class DrawLineScript : MonoBehaviour {
LineRenderer li;
int num;
void Start () {
li=GetComponent <<span style="color: #4ec9b0;">LineRenderer>();
num=0;
li.positionCount=0;
li.startWidth=0.1f;
}
void Update () {
if (Input .GetMouseButton(0))
{//滑鼠點選的是螢幕
num++;
li.positionCount=num;
li.SetPosition(num-1,ScToWo(Input.mousePosition
,transform));
Debug .Log ("應該是10把"+Camera.main.transform.position.z);
}
}
//一個將螢幕座標轉換成世界座標
//用視口轉世界的方法 傳入三個引數即可
//1 螢幕點選的位置的x佔螢幕的寬
//2 螢幕點選位置的y佔螢幕的高
//3 攝像機到世界裡的距離(需要一個物體做參考)
// 也就是要在物體與相機平行的那個平面操作
Vector3 ScToWo(Vector3 screenPos,Transform targetTra){
Vector3 dir=targetTra.position-Camera.main.transform .position;
Vector3 projectDir=
Vector3.Project(dir,Camera.main.transform.forward);
return Camera.main .ViewportToWorldPoint(
new Vector3 (screenPos .x/Screen.width,screenPos.y/Screen.height,
projectDir.magnitude )
);
}
}