์บ๋ฆญํฐ ํผ๊ฒฉ์ ์นด๋ฉ๋ผ๊ฐ ํ๋ค๋ฆฌ๋ฉด ๋ ๋ฐ์ง๊ฐ ์์๊บผ ๊ฐ์์
์ธํฐ๋ท์์ ์ด์ฐ ์ด์ฐ ์ฝ๋๋ฅผ ๊ตฌํ๋๋ฐ
public class CameraShake : MonoBehaviour
{
public float ShakeAmount;
float ShakeTime;
Vector3 initialPosition;
public void VibrateForTime(float time)
{
ShakeTime = time;
//canvas.renderMode = RenderMode.ScreenSpaceCamera;
//canvas.renderMode = RenderMode.WorldSpace;
}
// Start is called before the first frame update
void Start()
{
initialPosition = new Vector3(0f, 0f, -5f);
}
// Update is called once per frame
void Update()
{
if(ShakeTime > 0)
{
transform.position = Random.insideUnitSphere * ShakeAmount + initialPosition;
ShakeTime -= Time.deltaTime;
}
else
{
ShakeTime = 0.0f;
transform.position = initialPosition;
//canvas.renderMode=RenderMode.ScreenSpaceCamera;
}
}
}
๋ง์์ ์๋์ง ํ์นธ ์ค์ ๋๋ง๋ค ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ ์ฉํ๋ คํ๋๋ฐ
๊ฒ์๋งค๋์ ์คํฌ๋ฆฝํธ ์์
CameraShake Camera;
void Shake()
{
if (isHit == true)
{
Camera = GetComponent<CameraShake>();
return;
}
}
void Start()
{
Shake();
}
์ด๋ ๊ฒ ํ๋ ๋น์ฐํ ์๋๋ค ใ กใ ก ์ด๋ค์ ์ด ํ๋ ธ๋์ง ์๋ ค์ค๋ผ ์ฝ์ด์ค์ ์ ๋ง ๊ณ ๋ง์
1. public์ผ๋ก ์๊ธฐ๊ฐ ์ง์ Camera Component๋ฅผ ๊ฐ์ ธ์จ๋ค // ์์) public Camera mainCam;
์ ํ๋ฒ ํด๋ณผ๊ป ์๋ ค์ค์ ๊ณ ๋ง์
2. ์ฑ๊ธํค์ ์์ฉํ๋ค ์์) ์นด๋ฉ๋ผ ์คํฌ๋ฆฝํธ์ public static '์นด๋ฉ๋ผ ์คํฌ๋ฆฝํธ ์ด๋ฆ' instance; void Awake() instance = this;
์ ์ด๊ฑด ์ด๋ ต๋ค ใ ใ
๊ทธํ ์ ์ด์ ์นด๋ฉ๋ผ ์คํฌ๋ฆฝํธ ์ด๋ฆ.instance.์นด๋ฉ๋ผํ๋ค๋ฆผ();
3. tag์ layer๋ฅผ ์์ฉํด ์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ ธ์จ๋ค
ํด๋น ๋๊ธ์ ์ญ์ ๋์์ต๋๋ค.
์ ๊ทธ๋ฅ ํ๋๊ฒ ์๋๊ตฌ๋ ์์ธํ๊ฒ ์๋ ค์ค์ ์ ๋ง ๊ณ ๋ง์
์ ์ฝ๋๋ฅผ ๊ทธ๋๋ก ์ฐ๊ณ ์ถ๋ค๋ฉด Camera= Getcomponent(); ๊ฐ ์๋๋ผ CameraShake camShake = Getcomponent(); ํ ๋ค์ ํ๋ค๋ฆฌ๊ฒ ํ๊ณ ์ถ์๋๋ง๋ค camShake.ShakeTime = 0.3f; ์ด๋ฐ์์ผ๋ก ๋ง๋ค์ด์ผ์ง ๊ธ๊ณ CameraShake ์คํฌ๋ฆฝํธ์์ ShakeTime ์ public์ผ๋ก ํด์ฃผ๊ณ
์์ธํ๊ฒ ์๋ ค์ค์ ์ ๋ง ๊ณ ๋ง์ ํจ ํด๋ณผ๊ป
์.. ๋ถ๋ฑํธ๋ html๋ช ๋ น์ด๋ก ์์๋จน๋์ง ์ง์๋ฒ๋ฆฌ๋ค.. ๋ ๋ด๊ฐ ์๋ชป์ด๊ฑด์ค ์๊ณ ์ง์ฐ๊ณ ๋ค์ ์์ ํด์ ์ฌ๋ฆด๋ ค๊ณ ํ๋๋ฐ..
์ camerashake camera๋ผ๋ ๋์ด์๋ค ๊ทธ๋ผ ๊ฑฐ๊ธฐ๊น์ง ๋ง๋ค ๋์ ๊ณ์ ๋ฐ๋ณต๋ ํ์ ์์ผ๋ camera= getcomponent... ๋ ๊ทธ๋ฅ void Start(){}์์ ๋ฃ์ด๋ผ
๊ทผ๋ฐ Camera๋ UnityEngine์์ ๋ฏธ๋ฆฌ ์ ์ธํด๋ ํด๋์ค ์ด๋ฆ์ด๋ผ ๊ทธ๊ฑธ ๊ทธ๋๋ก ์ฐ์ง ๋ง๋ผ ๋์ค์ ์ถฉ๋๋๋ฉด ์ผ์ผ์ด unityengine.camera.main.. ์ด๋ฐ์์ผ๋ก ๊ณ ์ณ์ผ ํ๊ณ ๋ค๋ฅธ ์์ ๋ค๊ณผ ์ถฉ๋๋ ์๋ ์์ ์ ๋นํ __Camera๋ cameraShake ๊ฐ์ ์ค๋ณต๋์ง ์์๋งํ ์ด๋ฆ์ผ๋ก ์จ
๋ด๊ฐ ์๊ฐ๋๋๊ฒ ์ด์ ๋์ ์ด์ค ๊ฐ์ฅ ์ฌ์ด๊ฒ 1๋ฒ์ด๋ ๊ทธ๊ฑฐ ํด๋ณด์ผ
์์ด๊ณ ์ ๋ง ์ ๋ง ๊ณ ๋ง์ ๋์ค์ ๋ค ๋ง๋ค๋ฉด ์ฌ๊ธฐ๋ค ์ฌ๋ฆด๊ป ํ๊ฐ์ข ํด์ค ์ถ์ด๋ฐ ๋ชธ ์กฐ์ฌํ๊ณ
๋ฐฅ๋จน๊ณ ์ค๋๊น ๋๊ธ์ด ๋ง์ด ๋ฌ๋ ธ๋ค ๋ค๋ค ์ ๋ง ์ ๋ง ๊ณ ๋ง์
์๋ค๋จธ์ ์ฐพ์๋ด๋ผ... ๊ทธ๋๋ ๊ณต๋ถํ๋ค ์๊ฐํด
์ ์ด๊ฑฐ ์ฉ๋๋ฐ ์๋ ค์ค์ ๊ณ ๋ง์ ์ง๋ฌธ์ฌ๋ฆฐ ๋ณด๋์ด ์๋ค