'분류 전체보기'에 해당되는 글 495건

  1. 2014.02.25 재귀함수 예
  2. 2014.02.25 플레이어 컨트롤 스크립트
  3. 2014.02.25 배경 시차 스크롤 카메라의 움직임에따라
  4. 2014.02.24 파이어 폭스 유용한 부가기능
  5. 2014.02.18 유니티 광고 수익
  6. 2014.02.18 유니티 개발 시작
  7. 2014.02.17 특정위치 아래로 이동하는 함수 - Lerp 사용
  8. 2014.02.17 캐릭터 체력 바 생성하기 (1)
  9. 2014.02.17 Transform.TransformDirection
  10. 2014.02.17 타워에서 가까운 적을 판별 하는 스크립트

재귀함수 예

|

재귀함수 예..


tauntIndex = TauntRandom();


int TauntRandom()

{

// Choose a random index of the taunts array.

int i = Random.Range(0, taunts.Length);


// If it's the same as the previous taunt...

if(i == tauntIndex)

// ... try another random taunt.

return TauntRandom();

else

// Otherwise return this index.

return i;

}


만약 같은 함수이면 다시한번 TauntRandom를 호출함. 다른함수가 나오면 랜덤값 반환 아니면 계속해서 TauntRandom 함수 호출..

'유니티 > 스크립트' 카테고리의 다른 글

c# 의 region 기능  (0) 2014.02.27
가까운 위치 순으로 정렬하기  (0) 2014.02.27
재귀함수 예  (0) 2014.02.25
특정위치 아래로 이동하는 함수 - Lerp 사용  (0) 2014.02.17
캐릭터 체력 바 생성하기  (1) 2014.02.17
Transform.TransformDirection  (0) 2014.02.17
Trackback 0 And Comment 0

플레이어 컨트롤 스크립트

|


Taunt -> 점수 획득시 호출 -> 플레이어 웃음 소리 랜덤으로 발생 -> 같은 웃음소리면 다시 호출해서 다른 웃음소리가 나올때까지 호출함(재귀호출)


Linecast-> 라인 캐스트를 사용해서 플레이어의 밑이 Ground인지 파악한다. -> 오브젝트의 레이어 이름이 Ground여야 됨..


groundCheck -> 빈 게임 오브젝트를 캐릭터 밑에 위치 시킴. 인스펙터창에서 모양을 지정해줄수있어서 어디 위치했는지 쉽게 알수 있음.


if(h * rigidbody2D.velocity.x < maxSpeed)

rigidbody2D.AddForce(Vector2.right * h * moveForce);

if(Mathf.Abs(rigidbody2D.velocity.x) > maxSpeed)

rigidbody2D.velocity = new Vector2(Mathf.Sign(rigidbody2D.velocity.x) * maxSpeed, rigidbody2D.velocity.y);


플레이어의 속도가 최대속도보다 아래면 힘을주고 아니면 속도를 최대속도로 제한해준다.


if(h > 0 && !facingRight)
// ... flip the player.
Flip();
// Otherwise if the input is moving the player left and the player is facing right...
else if(h < 0 && facingRight)
// ... flip the player.
Flip();

플레이어의 모양을 보고 왼쪽이면 왼쪽을 바라보게 오른쪽이면 오른쪽으로 바라보게 한다.


if(jump)
{
// Set the Jump animator trigger parameter.
anim.SetTrigger("Jump");

// Play a random jump audio clip.
int i = Random.Range(0, jumpClips.Length);
AudioSource.PlayClipAtPoint(jumpClips[i], transform.position);

// Add a vertical force to the player.
rigidbody2D.AddForce(new Vector2(0f, jumpForce));

// Make sure the player can't jump again until the jump conditions from Update are satisfied.
jump = false;
}

점프 중이면. 랜덤으로 점프 사운드를 재생하고 위쪽으로 힘을 가한다(AddForce)


-> 모든 물리관련 동작은 FixedUpdate()에서 실행한다.


솔직히 아직도 재귀함수에 대한 이해가 부족한거 같음
된다는건 알고있지만 뭔가 이상하다..





Trackback 0 And Comment 0

배경 시차 스크롤 카메라의 움직임에따라

|


배경 시차 스크롤 카메라의 움직임에 따라서 배경의 움직임이  달라짐.

Background 빈 오브젝트에 각각의 값들을 집어넣으면 그 값들은 각각의 속도가 다름..

뭔가 파악하기 어려운 소스지만.. 일단 대강은 이해가 감.




parallax.unitypackage


카메라를 이동가능하게 만듬..



parallaxScale -> 시차 스크롤링 속도 (카메라의 움직임에 따라 값이 클수록 더 빨리 배경이 움직임)


parallaxReductionFactor -> 각 레이어 별 시차 스크롤 속도 차이 값이 클수록 각 레이어별로 속도 차이가 크다.


smothing -> Lerp 함수에 입력된 값


Trackback 0 And Comment 0

파이어 폭스 유용한 부가기능

|

Adblock Plus
All-in-One Sidebar
Tab Mix Plus
FireGestures
Pocket
Zoom Page
AutoPager
QuickFox Notes
Locationbar²
Quick Search Bar
SelectionSK

'유니티 > Note' 카테고리의 다른 글

delegate, action, event 활용 관련  (0) 2014.04.07
안드로이드 In-app Billing Version 3 - 구글번역  (0) 2014.03.27
파이어 폭스 유용한 부가기능  (0) 2014.02.24
유니티 광고 수익  (0) 2014.02.18
유니티 개발 시작  (0) 2014.02.18
삼각함수 관련  (0) 2014.02.16
Trackback 0 And Comment 0

유니티 광고 수익

|

애드몹, 카울리 등 광고를 붙이는 방법을 모색해보자.


'유니티 > Note' 카테고리의 다른 글

안드로이드 In-app Billing Version 3 - 구글번역  (0) 2014.03.27
파이어 폭스 유용한 부가기능  (0) 2014.02.24
유니티 광고 수익  (0) 2014.02.18
유니티 개발 시작  (0) 2014.02.18
삼각함수 관련  (0) 2014.02.16
벡터  (0) 2014.02.16
Trackback 0 And Comment 0

유니티 개발 시작

|

유니티 개발에 있어서 최대한 많은 습작을 만드는게 좋을 것 같음.

책에 있는 내용들은 거의 그대로 따라하는 방식으로 작업을 했었음.

그 이후에는 각종 예제 소스들을 분석해가면서 작업.

그리고 자기만의 게임을 만들어야 될듯.


일단 책에 있는 게임 예제들을 책을 안보고 혼자서 해보는 방식으로 개발하는것도 괜찮을 것 같음.

유니티의 장점은 에셋이 없어도 프로토타입을 쉽게 만들 수 있는 것이기 때문에.





'유니티 > Note' 카테고리의 다른 글

파이어 폭스 유용한 부가기능  (0) 2014.02.24
유니티 광고 수익  (0) 2014.02.18
유니티 개발 시작  (0) 2014.02.18
삼각함수 관련  (0) 2014.02.16
벡터  (0) 2014.02.16
메카닉 관련 유니티 제공 에셋  (0) 2014.02.14
Trackback 0 And Comment 0

특정위치 아래로 이동하는 함수 - Lerp 사용

|





사용법


StartCoroutine( MoveDown(transform, 0.2f, 0.2f));

첫번째 인자 현재 트랜스폼

두번째 인자 이동 거리, 세번째 인자 이동 속도

Trackback 0 And Comment 0

캐릭터 체력 바 생성하기

|



 GUITexture 를 사용하여 체력바를 표시한다.

GUITexture 두장을 사용하여 하나는 체력바 배경으로 만들고 하나는 줄어드는 체력바를 표시함.

그리고 그것을 프리팹으로 만들어준다.


몬스터에 해당 스크립트를 붙이고

체력을 설정해주고 위에서 만든 프리팹을 붙여주면 된다.





Trackback 0 And Comment 1
  1. jar00 2014.03.21 02:14 address edit & del reply

    안녕하세요. 이 글을 참조해서 게임을 제작하고 있는 학생입니다.

    다름이 아니라 "GUITexture 두장을 사용하여 하나는 체력바 배경으로 만들고 하나는 줄어드는 체력바를 표시함. 그리고 그것을 프리팹으로 만들어준다" 가 무슨 의미인지요? GUITexture 프리팹 두개가 있는데 스크립트에는 하나밖에 불러오지 않네요..

Transform.TransformDirection

|







function TransformDirection (direction : Vector3) : Vector3

Description

변환 direction 지역 공간에서 전체 공간.

이 작업은 스케일이나 변환의 위치에 의해 영향을 받지 않는다 반환되는 벡터는 같은 길이를 갖는다 direction.

C#
using UnityEngine;
using System.Collections;

public class example : MonoBehaviour {
public Transform cam = Camera.main.transform;
public Vector3 cameraRelativeRight = cam.TransformDirection(Vector3.right);
void Awake() {
rigidbody.AddForce(cameraRelativeRight * 10);
}
}


Trackback 0 And Comment 0

타워에서 가까운 적을 판별 하는 스크립트

|



InvokeRepeating 함수는 반복해서 첫번째 인자에 전달된 함수를 호출하는 API입니다.

두번째 인자는 첫 함수를 언제 호출할지 결정되는 인자이며 세번째 인자는 얼마나 자주 반복할지 결정되는 인자입니다. 

위 스크립트에서는 0초만에 함수를 호출하고 1초마다 함수를 반복해주는 스크립트입니다.


Update 문에서는 DrawLine을 그려주어서 잘 판별되는지 파악하고


getClosestEnemy 함수에서는 해당되는 태그를 찾아서( 이 스크립트에서는 enemyAim) taggedEnemys 변수에 집어 넣고 for문을 돌려주어서


타워의 위치에서 적의 위치를 판별하여 sqrMagnitude로 벡터의 길이를 구해줍니다. 그 길이가 3.0 보다 작을때는 해당적의 트랜스폼을 저장하고 거리또한 저장해줍니다.


그리고 마지막으로 타겟에 변수를 저장해줍니다.







Vector3.sqrMagnitude

var sqrMagnitude: float;
Description

Returns the squared length of this vector (Read Only).

The magnitude of a vector v is calculated as Mathf.Sqrt(Vector3.Dot(v, v)). However, the Sqrt calculation is quite complicated and takes longer to execute than the normal arithmetic operations. Calculating the squared magnitude instead of using themagnitude property is much faster - the calculation is basically the same only without the slow Sqrt call. If you are using magnitudes simply to compare distances, then you can just as well compare squared magnitudes against the squares of distances since the comparison will give the same result.

See Also: magnitude.
	// detects when the other transform is closer than closeDistance
	// this is faster than using Vector3.magnitude

var other : Transform; var closeDistance = 5.0; function Update() { if (other) { var offset = other.position - transform.position; var sqrLen = offset.sqrMagnitude; // square the distance we compare with if( sqrLen < closeDistance*closeDistance ) print ("The other transform is close to me!"); } }


Trackback 0 And Comment 0