1월 10일 국토부의 부동산 정책이 있었다.

관련 언론 기사 및 부동산 유튜버의 내용을 정리해 본다.

 

◎ 첫 번째, 주택 공급을 확대하고 건설 경기를 보완하겠다.

- 작년에는 인허가 규모 : 30만호 목표치 47만호에 30%정도 부족했다. 빌라나 오피스텔 등 비아파트 위주로 주택 공급을 촉진하려고 보인다.

 

1) 재건축과 재개발 : 이를 늘릴 수 있도록 요건을 완화하는 방향성으로 진행하겠다.

2) 1기 신도시 : 노후계획도시 정비 사업여건을 획기적으로 개선하겠다.

3) 소규모 정비 사업 : 사업 기능 지역을 확대하고 사업 속도를 높이기 위해 절차 간소화 및 참여유인을 제고하겠다.

 

► 2) 1기 신도시 재건축

•1기 신도시법의 경우 작년말 통과되었고 올해 시행되므로, 올해 하반기부터 1기 신도시 정비버을 위한 여러 준비들을 진행할 것으로 보인다.

•정비 구역으로 지정을 먼저할 수 있도록 하고 '안전 진단'을 병행할 수 있도록 하는 것이 요지이다. 즉, 안전 진단이 면제되는 것이 아니고, 안전 진단을 병행해서 사업시행인가 전에 받아야하는 것이다. 이전까진 재건축을 하고 싶어도 '안전 진단'을 통과하지 못하면 재건축을 못했지만 앞으로 바뀐 대책으로 진행한다면 추진위~조합설립까지 진행할 수 있다.

 

3) 소규모 정비 사업

● 구입 부담 경감

대상 주택 : 24.1월~25.12월 준공된 전용 60m²이하, 수도권 6억원∙지방3억원 이하 다가구 주택, 공동주택(아파트 제외), 도시형생활주택, 주거용 오피스텔을 25.12월까지 최초 구입 시

• (취득세) 취득가격, (양도세∙종부세) 공시가격

주택수 제외 : 신규 취득하는 해당 주택부터 세제 산정 시 주택 수에서 제외하여, 기존 보유 주택수에 해당하는 세율을 적용 (단, 취득세는 3년(24.1월 ~ 26.12월) 동안만 제외하고 추후 연장을 검토한다.

1세대 1주택자가 추가 구입 시, 1세대 1주택 특례(양도세∙종부세) 미적용

 

● 등록 임대 사업 여건 개선

(단기 등록임대 도입) 임대의무기간(현 10년)이 완화된 단기 등록임대를 도입하여 소형 임대주택 공급 활성화

(등록 임대) 소형 기축 주택은 향후 2년간 구입,임대등록(매입임대)하는 경우 세제 산정 . 시 주택 수에서 제외

 

 두 번째, PF 문제 해결을 위해서 보완하겠다.

(PF 대출) 정상사업장이 원활하게 자금을 조달할 수 있도록 공적 PF대출 보증 25조원을 차질없이 공급하고, 사업장별 문제점 해소를 지원

(PF대출 대환보증 신설) 보증없이 고금리로 PF 대출을 받은 사업장이 저금리 PF 대출로 대환할 수 있도록 HUG PF 보증 발급

 

(지방 준공후 미분양) 지방 준공후 미분양 주택에 대한 세 부담을 경감하겠다.

(구입자) 향후 2년간 지방 준공 . 후미분양 주택(85m²•6억원 이하)을 최초로 구입하는 경우 해당 주택은 세제 산정 시 주택수 제외하겠다.

- 기존 1주택자가 최초 구입 시 1세대 1주택 특례도 적용하겠다.

대상 주택 : 전용면적 85m² 이하, 취득 가격 6억원 이하의 준공 후 미분양 주택으로, 24.1.10일~25.12.31일까지 최초로 구입한 경우

주택수 제외 효과 : 신규 취득하는 해당 주택부터 세제 산정 시 주택 수에서 제외하여, 기존 보유 주택수에 해당하는 세율 적용 (단, 취득세는 3년(24.1~26.12) 동안 제외하고, 추후 연장 검토)

기존 1주택자 1세대 1주택 특례는 유지

 

 

 

'경제 > 부동산' 카테고리의 다른 글

최근 부동산 시장 예측 ft.이광수 대표  (0) 2024.02.07
권리분석 - 유치권  (0) 2024.02.04
경매 관련 사이트  (0) 2024.02.01
2023년 부동산 결산  (1) 2023.12.23

2D 화면에서 마우스 커서 위치를 받아와서 스프라이트가 움직이도록 한다.

 

public class Dongle : MonoBehaviour
{
    void Update()
    {
        Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);     //Screen 좌표계
        mousePos.z = 0;
        transform.position = Vector3.Lerp(transform.position, mousePos, 0.01f);
    }
}

 

Lerp를 사용해서 천천히 따라가게끔 보여지게 할 수 있다.

Vector3.Lerp : 목표 지점으로 부드럽게 이동시키는 함수.

 

// Vector3.Lerp(현재 위치, 목표 위치, 따라가는 강도);

 

 

'프로그래밍 > Unity3D' 카테고리의 다른 글

Unity3D::돌림판 만들기  (0) 2023.12.25
GameObject 이동 및 회전  (0) 2023.12.24

 

1. 게임에서 자주 사용하는 돌림판 기획 및 개발까지 진행해보자.

 

초안

- 기획자는 돌림판에 최소 4개부터 최대 8가지의 메뉴를 선택할 수 있다.

- 시작 버튼을 클릭하면 중앙에 존재하는 바늘이 회전한다.

- 바늘 애니메이션은 빠르게 돌다가 천천히 멈춘다. (1.5초 이내)

   > 멈추는 지점은 각 애니메이션으로 제작 (총 12개)

- 바늘이 위치한 곳에 있는 메뉴가 당첨된다.

- 기획자가 모든 메뉴에 대해서 확률을 선택할 수 있어야 한다.

- 메뉴가 당첨된 후 룰렛은 리셋되어 바늘은 최초 상태로 변경된다.

 

고려사항

- 시작 버튼 클릭 시, 무조건 메뉴 하나는 확정되어야 한다.

- 시작 버튼 클릭 후 룰렛 애니메이션이 실행되는 동안 시작 버튼은 눌리지 않는다.

- 바늘은 경계선에 걸치지 않는다.

 

1.1 제어 확률 변수 세팅

메뉴 개수 입력 : x = 4,5,6,7,8

메뉴 텍스트 입력 : RouletteMenu[x] = {a,b,c,d..}

기대값 입력 (백분율) : ExpectedValue[y] = {0,1...}

- 기대값의 인덱스는 메뉴 개수와 동일하다.

- 기대값은 0부터 100까지 입력한다.

-  기대값의 합은 100이다.

- 기대값 인덱스에 들어간 값은 순차적으로 메뉴

 

예)

  메뉴 개수가 4일 경우 : {5, 20, 30,45}

  메뉴 개수가 8일 경우 : {1,1,1,1,1,1,1,93}

 

public class GameManager : MonoBehaviour
{
       public SpriteRenderer niddle; // 돌림판 침
       public Animator animator; // 돌림판 룰렛에 붙어있는 애니메이션
       public GameObject startBtn; // 시작 버튼

       public TextMeshProUGUI[] RouletteMenu; //룰렛 메뉴
       public float[] ExpectedValues;

       void Start()
       {
              Button startButton = startBtn.GetComponent<Button>();
              startButton.onClick.AddListener(RouletteStartClick);
              DisplayMenu();

              if(animator == null){
                     Debug.LogError("Animator component not connected");
              }
       }
       void RouletteStartClick()
       {
             int selectedIndex = PickRandomIndex();
              PlayRandomAnimation(selectedIndex);
              Debug.Log("뽑힌 숫자 : "+selectedIndex);
       }

       int PickRandomIndex()
       {
              float totalProbability = 0f;

              //전체 확률 계산
       foreach (float probability in ExpectedValues)
       {
             totalProbability += probability;
       }

       //0부터 100 사이의 난수 생성
       float randomValue = Random.Range(0f, totalProbability);
       Debug.Log("뽑힌 randomValue : "+randomValue);

       float cumulativeProbability = 0f;

       //확률에 따라 선택된 인덱스 결정
       for(int i = 0; i < ExpectedValues.Length; i++){
              cumulativeProbability += ExpectedValues[i];
             if(randomValue <= cumulativeProbability){
                     return i; //선택된 인덱스 반환
              }
       }

       return 0; //예외적인 경우, 첫 번째 인덱스 반환
       }

       public void PlayRandomAnimation(int index)
       {
             if(animator != null){
             switch(index){
                    case 0 : animator.SetTrigger("menu_1st"); break;
                    case 1 : animator.SetTrigger("menu_2nd"); break;
                    case 2 : animator.SetTrigger("menu_3rd"); break;
                    case 3 : animator.SetTrigger("menu_4th"); break;
                    case 4 : animator.SetTrigger("menu_5th"); break;
                    case 5 : animator.SetTrigger("menu_6th"); break;
                    case 6 : animator.SetTrigger("menu_7th"); break;
                    case 7 : animator.SetTrigger("menu_8th"); break;
                    }
             }
       }

       void DisplayMenu()
       {
             for(int i = 0; i < RouletteMenu.Length; i++){
                    SetText(i, ExpectedValues[i] + "%");
              }
       }

       void SetText(int index, string message)
       {
              if (index >= 0 && index < RouletteMenu.Length){
                     RouletteMenu[index].text = message;
              }
              else{
                     Debug.Log("SetText Error");
              }
       }
}

 

사용한 샘플씬 구조 및 GameManager Inspector
포토샵으로 급조해 만든 룰렛 판

 

 

  • 일단 8개의 메뉴로 구성된 룰렛판을 만들어 보았다.
  • 바늘이 도는 형태를 애니메이션으로 구성해봤는데, 구색만 맞추어 제작하다보니 약간 허접해보인다.
  • gameManager에서 확률 값을 입력할 수 있도록 만들고, 해당 확률이 메뉴로 보여지게끔 구성했다.

 

1. 물체를 움직이는 방법

 - tranform.Translate 사용

public class PlayerController : MonoBehaviour
{
       public float speed = 5.0f;
       public float horizontalInput;

       void Start()
       {
 
       } 

       void Update()
       {
             forwardInput = Input.GetAxis("Vertical");
 
             transform.Translate(Vector3.forward * Time.deltaTime * speed * forwardInput);
       }
}

 

2. 물체를 움직이는 방법

- rigbody 정보를 받아와서 MovePosition 함수를 사용

public class Rigid2dController : MonoBehaviour
{
       public Rigidbody rb;
       private Vector3 velocity;

       void Awake()
       {
             rb = gameObject.GetComponent<Rigidbody>();   //rigidBody 가져오기
       }
       void Start()
       {
             velocity = new Vector3(0,0,2.0f);                            //속도
             transform.position = new Vector3(6.0f,0,0);         //초기 위치값 설정
       }
 
       void Update()
       {
             rb.MovePosition(rb.position + velocity * Time.deltaTime);
       }
}

 

 

3. 물체를 회전시키는 기본적인 방법

public class PlayerController : MonoBehaviour
{
       public float turnSpeed = 20.0f;
       public float forwardInput;

       void Start()
       {
 
       }

       void Update()
       {
              horizontalInput = Input.GetAxis("Horizontal");
              
              transform.Rotate(Vector3.up,Time.deltaTime * turnSpeed * horizontalInput);
       }
}

+ Recent posts