본문 바로가기
반응형

개발/코드25

코드) 리스폰 가능한 포지션 가져오기(방해물 영역제외) 리스폰 가능한 포지션 가져오기(방해물 영역제외) 게임을 만들다보면 게임 장르특성에 따라 다르긴하지만 . 리스폰영역에대한 고민을 할때 구현했던 코드들이다. 기본적으로 겹쳐서 생성하면안되는 로직으로 처리를 했고 distance를 기반으로 해당 위치를 제외하고 리스폰 영역을 구하도록 작업했다. public Vector3 GetNotObstaclePosition(List _obstacle) { Vector3 returnValue = Vector3.zero; bool flag = false; do { returnValue = this.GetIntPosition(Random.insideUnitSphere * 100f); returnValue.y = 0f; if(false == Utill.Instance.CheckM.. 2020. 5. 29.
코드) c# 날짜계산하기(DateTime 비교) c# 날짜 계산하기 게임 작업을 하다 보면 시간을 기준으로 처리하는 로직들이 꽤나 많이 필요하다. 유틸 함수로 따로 처리해두고 필요할 때 사용하면 편리하다. 현재 날짜와 저장된 날짜와 비교하기 System.DateTime currentDate = System.DateTime.Now; System.DateTime prevDate = DateTime.Parse(missionAttendanceValue); System.TimeSpan timeCal = currentDate - prevDate; if( timeCal.Days == 0 ){ //return; //같은날인경우 } 하루를 기준으로 갱신되는 시간 값 가져오기 private void UpdateTimeInfo() { DateTime today = Dat.. 2020. 5. 29.
코드) Unity - 바이트를 기준으로 String 짜르기 Unity - 바이트를 기준으로 String 짜르기 개발을 하다보면 영문/한글을 기준으로 길이를 균일하게 처리해야할때 사용하는 코드이다. public string GetStringWithLengthOfByte(string _value, int _byteLength) { string strTemp = ""; string retunValue = ""; int byteLen = 0; for (int i = 0; i < _value.Length; i++) { string sStrOfCurIndex = _value.Substring(i, 1); strTemp = strTemp + sStrOfCurIndex; byteLen += Mathf.Min(Encoding.UTF8.GetByteCount(sStrOfCurIn.. 2020. 3. 25.
코드) 카메라 줌 (Camera Zoom) 카메라 줌 (Camera Zoom) 카메라를 줌하는 방법은 여러가지가 있다. 1.실질적인 카메라의 위치포지션을 옮기는 방법. 2. 카메라의 FOV 를 변경하는 방법 카메라의 FOV 를 변환을 하게되면 카메라 뷰의 영역이변경된다. 줌처리는 되긴하지만 보이는 각도가 달라지니 카메라의 위치포지션을 옮기도록하자. this.m_MainCamera.transform.position = this.m_vInitPosition.noramlize * value ★☆☆☆☆ 2020. 3. 15.
코드) 원 운동 원 운동 public Vector3 GetAnglePosition(float _angle, float _radius) { Vector3 returnValue = Vector3.zero; returnValue.x = Mathf.Sin(Mathf.Deg2Rad * _angle) * _radius; returnValue.z = Mathf.Cos(Mathf.Deg2Rad * _angle) * _radius; return returnValue; } ★★☆☆☆ 2020. 3. 3.
코드) Debug Circle public void UpdateDebugCircle(float _diameter, Color _color) { float radius = (_diameter / 2f); Vector3 prevPos = this.GetPosition() + Utill.Instance.GetAnglePosition(0, radius); Vector3 endPos = Vector3.zero; int count = 360 + 1; for (int i = 0; i < count; i++) { endPos = this.GetPosition() + Utill.Instance.GetAnglePosition(i, radius); Debug.DrawLine(prevPos, endPos, _color); prevPos = endPos; .. 2020. 2. 28.
코드) 리스트 랜덤 리스트 랜덤 개발을 하다보면 중복되지 않는 값들을 랜덤으로 셔플해야하는 상황에서 사용하는 코드이다. for(int i =(0 ; i 0; i--){ int rnd = Random.Range(0, i); int temp = list[i]; list[i] = list[rnd]; list[rnd] = temp; } ★☆☆☆☆ 2020. 2. 28.
코드 ) 부채꼴 충돌 부채꼴 충돌 간단히 보채골 충돌에 대한 판단을 하는 코드이다. 벡터의 지름을 계산해서 판단한다. public class CirSector : MonoBehaviour { public Transform m_Target; public float m_fAngle = 45f; public float m_fDistance = 10f; public bool m_bCollision = false; Vector3 direction; float dotValue = 0f; void Update () { dotValue = Mathf.Cos(Mathf.Deg2Rad * (this.m_fAngle / 2)); direction = this.m_Target.position - transform.position; if (dire.. 2020. 1. 20.
코드) 두 점 사이의 각도 계산 두 점 사이의 각도 계산 return Math.atan2 ( ( from.x - to.x) , (from.y - to.y)) * (360 / ( Math. PI * 2)) var angle = Mathf.Atan2((prevPos.y - nextPos.y), (prevPos.x - nextPos.x)) * Mathf.Rad2Deg; transform.rotation = Quaternion.Euler(0, 0, (float)angle+90); using System; public static double GetAngle(double x1, double y1, double x2, double y2) { // 두 점 사이의 차이 계산 double deltaX = x2 - x1; double deltaY = y.. 2019. 11. 8.
코드) 두 점 사이의 거리 두 점 사이의 거리 return Math. Sqrt( ( from.x - to.x) * ( from.x - to.x) + (from.y - to.y) * (from.y - to.y)); Vector3.Distance(prevPos, nextPos); ★★☆☆☆ 2019. 11. 8.
반응형