Unity3D - 메모장

quest3dkorea.com


통계 위젯 (화이트)

07
48
139742


7월초 영월서강풍경


움직이다가 부드럽게 방향전환하기 Unity3D 스크립트

//높이값 없애기 위한부분
targetpos = targetlist[currentindex].transform.position;
thispos = transform.position;
targetpos.y = 0f;
thispos.y = 0f;

//방향전환 및 앞으로 가기
QTtargetrot = Quaternion.LookRotation(targetpos - thispos);
transform.rotation = Quaternion.Slerp(transform.rotation, QTtargetrot, Time.deltaTime * turnspeed);
transform.Translate(Vector3.forward * movespeed * Time.deltaTime);

//목표에 근접하면 다음 목표로 변경
if (Vector3.Distance(targetpos, thispos) < 2f) {
currentindex++;
      if (currentindex > targetlist.Count - 1) {
      currentindex = 0;
}
}

ftp upload / download / get file list Unity3D 스크립트

public class UtilFTP : MonoBehaviour {
        public static void call_uploadfile(string uploadfilename, string ftptargetpath, string ftpserver, string username, string password) {
            try {
                string filename = Path.GetFileName(uploadfilename);
                Uri newftpserver = new Uri(ftpserver);
                FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(newftpserver + ftptargetpath + filename);
                ftp.Credentials = new NetworkCredential(username, password);
                ftp.KeepAlive = true;
                ftp.UseBinary = true;
                ftp.Method = WebRequestMethods.Ftp.UploadFile;

                FileStream fs = File.OpenRead(uploadfilename);
                Debug.Log("uploadfilename : " + uploadfilename);
                byte[] buffer = new byte[fs.Length];
                fs.Read(buffer, 0, buffer.Length);
                fs.Close();

                Stream ftpstream = ftp.GetRequestStream();
                ftpstream.Write(buffer, 0, buffer.Length);
                ftpstream.Close();
            } catch (WebException ex) {
                Debug.Log(ex.ToString());
            }

        }

        public static void DownloadFile(string serverFulladd, string localfilepath, string id, string pass) {
            using (WebClient wc = new WebClient()) {
                wc.Credentials = new NetworkCredential(id, pass);
                wc.DownloadFile(serverFulladd, localfilepath);
            }
        }
    
    }

public string[] GetFileList(string ftpadd, string folder) {
        Debug.Log(firsttext.text);
        string[] downloadFiles;
        StringBuilder result = new StringBuilder();
        WebResponse response = null;
        StreamReader reader = null;
        try {
            FtpWebRequest reqFTP;
            reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpadd + folder));
            reqFTP.UseBinary = true;
            reqFTP.Credentials = new NetworkCredential(id, pass);
            reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
            reqFTP.Proxy = null;
            reqFTP.KeepAlive = false;
            reqFTP.UsePassive = false;
            response = reqFTP.GetResponse();
            reader = new StreamReader(response.GetResponseStream());
            string line = reader.ReadLine();
            while (line != null) {
                result.Append(line);
                result.Append("\n");
                line = reader.ReadLine();
            }
            // to remove the trailing '\n'
            result.Remove(result.ToString().LastIndexOf('\n'), 1);
            return result.ToString().Split('\n');
        } catch (Exception ex) {
            if (reader != null) {
                reader.Close();
            }
            if (response != null) {
                response.Close();
            }
            downloadFiles = null;
            return downloadFiles;
        }
    }

4월 서강(평창강, 영월 선돌 인근) 풍경 영월서강풍경


12~2월 서강(평창강, 영월 선돌 인근) 영월서강풍경


버튼 onClick 리스너에 인덱스 지정하기 (for문) Unity3D 스크립트


        for (int i=0; i < sltbtn.Length; i++) {
            int _selidx = i;
            sltbtn[i].onClick.AddListener(()=> SelectItems(_selidx));
        }

mysql 8.0대 버전 오류 해결하기 Unity3D 스크립트

8.0 서버를 사용하면서 구형 mysql.data.dll을 사용하면 이런저런 오류가 발생 예) key값을 못찾아.... 
그래서 최신버전으로 사용하면 왠 구글? 

그래서 dll을 모두 찾아서 플러그인 폴더에 삽입. 완료 

# *.dll 경로 
MySQL\MySQL Connector Net 8.0.18\Assemblies\v4.5.2
폴더안에 있는 파일 전부 복사한 다음 오류내는 것만 지워내도 됨.

Unity\Editor\Data\Mono\lib\mono\2.0 -----I18N.*


불나방춤 Unity3D 스크립트

void Update()
    {
        currentrot = Mathf.Lerp(currentrot, targetrot, Time.deltaTime * 2f);
        rgd.MoveRotation(currentrot);
        transform.Translate(Vector3.up * movespeed * Time.deltaTime);
    }


void SetRotation() {
        Vector2 rgdpos = rgd.GetComponent<RectTransform>().anchoredPosition;
        
        if ((rgdpos.x > zone.offsetMin.x && rgdpos.x < zone.offsetMax.x) && (rgdpos.y > zone.offsetMin.y && rgdpos.y < zone.offsetMax.y)) {
            targetrot = Random.Range(0f, 360f);
        } else {
            Vector2 target = zone.anchoredPosition - rgdpos;
            float goangle = Mathf.Atan2(target.y, target.x);
            targetrot = goangle * 120f;
        }
        float settime = Random.Range(0.5f, 0.6f);
        Invoke("SetRotation", settime);

    }

7,8월 서강(평창강, 영월 선돌 인근) 영월서강풍경


data parse - serial Unity3D 스크립트

List<string> mergetext = new List<string>();
    void Read_port() {

            byte[] bytes = new byte[8];
            int i = port.Read(bytes, 0, bytes.Length);
            serial_text = BitConverter.ToString(bytes);
            Debug.Log("read:" + serial_text);
            Showlog.Instance.LogMSG = "read : " + serial_text;
            string[] tmp = serial_text.Split('-');

            foreach (string str in tmp) {
                if (str == "00") {
                    break;
                }
                mergetext.Add(str);
            }

            if (mergetext.IndexOf("F2") > 0 && mergetext.IndexOf("F2") < 8) {
                Debug.Log("remove - 0, " + mergetext.IndexOf("F2"));
                mergetext.RemoveRange(0, mergetext.IndexOf("F2"));
            }

            if (mergetext.Count >= 8) {
                string laststr = "";
                for (int j = 0; j < 8; j++) {
                    if (mergetext[0] != "F2" || mergetext[7] != "F3") {
                        mergetext.Clear();
                        Showlog.Instance.LogMSG = "input data error";
                        Debug.Log("dataerror");
                        return;
                    }
                    laststr += mergetext[j];
                }

                Debug.Log(laststr);

                    ReceiveMsgHandler?.Invoke(laststr, EventArgs.Empty);
                mergetext.Clear();
            }

    }

1 2 3 4 5 6 7 8 9 10 다음