[TIL] 49 강의, 팀프로젝트 alt f4 ⭐⭐
카테고리: Til
팀프로젝트 1일차
[o] 알고리즘 문제 - 51
[o] 다른반 강의 듣기
[x] 심화주차 강의 듣기.
점프대 만들기
1. Addforce
private void OnCollisionEnter(Collision collision)
{
Rigidbody otherRigidbody = collision.gameObject.GetComponent<Rigidbody>();
Vector3 forwardDirection = collision.transform.up;
if (otherRigidbody != null)
{
otherRigidbody.AddForce(forwardDirection * 30, ForceMode.Impulse);
}
}
2. Rotation,Addforce
using System.Collections;
using UnityEngine;
public class RotationJump : MonoBehaviour
{
private float _rotateSpeed = 1f;
private Vector3 _stopRotate = new Vector3(80, 0, 0);
private Vector3 _startRotate = new Vector3(0, 0, 0);
private bool _checkRotate = true;
private bool _collidertime = true;
void OnCollisionEnter(Collision collision)
{
if (collision.gameObject.tag == "Player"&&_checkRotate && _collidertime)
{
StartCoroutine(RotatePad(collision));
_collidertime = false;
}
}
IEnumerator RotatePad(Collision collision)
{
while (_checkRotate)
{
Debug.Log(_rotateSpeed);
_rotateSpeed += 0.01f;
transform.Rotate(Vector2.right* _rotateSpeed);
yield return null;
if (_stopRotate.x - transform.eulerAngles.x <= 50f)
{
Rigidbody otherRigidbody = collision.gameObject.GetComponent<Rigidbody>();
Vector3 forwardDirection = collision.transform.up;
if (otherRigidbody != null)
{
otherRigidbody.AddForce(forwardDirection*10, ForceMode.Impulse);
}
transform.rotation = Quaternion.Euler(_stopRotate);
_checkRotate =false;
}
}
yield return new WaitForSeconds(2f) ;
while (!_checkRotate)
{
transform.Rotate(Vector2.left);
yield return null;
if (transform.eulerAngles.x - _startRotate.x <= 1.1f)
{
transform.rotation = Quaternion.Euler(_startRotate);
_checkRotate = true;
}
}
_collidertime = true;
_rotateSpeed = 1f;
}
}
while (!_checkRotate)
{
transform.Rotate(Vector2.left);
yield return new WaitForSeconds(0.5f);
Debug.Log(transform.eulerAngles.x);
if (Mathf.Approximately(transform.eulerAngles.x, _startRotate.x))
{
_checkRotate = true;
}
//-> if (transform.eulerAngles.x - _startRotate.x <= 1.1f)
}
- rotation 이 1-> 0으로 될 때 0이 아닌 360이 되어서
- Mathf.Approximately(transform.eulerAngles.x,startRotate.x)로 원하는대로 멈출 수 없었다.
- if (transform.eulerAngles.x - _startRotate.x <= 1.1f) 로 바꿔서 작동.
- 1 -> 1.333971E-05 -> 359
공중 그네에서 이동
- 팀원 장애물 중 공중 그네에착지 후 그네를 따라 플레이어가 움직여야 됐다.
- 그네에 착지 시 그네를 플레이어 부모로 만들고 그네에서 떨어지면 따로 분리 하는 방법이 있는 거 같았다.
잡담,정리
- 문제 : 플레이어가 점프, 충돌이 일어나지 않는다. startasset에 뭔가가 있는건지,
- 플레이어관련해서 처리해야 될 게 있는건지 알아보기.
- 할일 : 가시, 문제, 틀린문제 문닫기, 열기,
댓글남기기