'잡다한것들전부/팁'에 해당되는 글 61건

  1. 2015.06.29 git 언어별 ignore 리스트 자동 생성
  2. 2015.06.29 git 원격저장소 종류
  3. 2014.01.25 Update 및 FixedUpdate 사용시 주의점
  4. 2014.01.22 유니티 에디터 notepad++로 변경하기
  5. 2014.01.21 레벨 단위 기획
  6. 2014.01.21 유니티 스크립트 에디터ㄱ
  7. 2014.01.18 Animation Parameters
  8. 2014.01.16 [펌] 유니티 디바이스 화면에 디버깅 콘솔 찍기
  9. 2014.01.16 [펌] 유니티3D Conditional Attribute 사용
  10. 2014.01.16 [펌] 유니티 엔진 - 텍스트 파일을 이용하여 에셋 번들 한꺼번에 생성 하기

git 언어별 ignore 리스트 자동 생성

|

https://www.gitignore.io/

 

 

git 언어별 ignore 리스트 자동으로 생성해주는 곳

unity 의 경우 unity 입력

eclipe의 경우 eclipe를 누르고 Generate 버튼을 누르면 ignorelist가 완성되고 그걸 복사 붙여넣고 gitignore 파일에 붙여넣으면 된다.

 

 

Trackback 0 And Comment 0

git 원격저장소 종류

|

1. GitHub - 오픈소스에 한해서 무료, private일 경우 유료.

https://github.com/

2. GitLab - (https://about.gitlab.com/) 무료 서비스. 자기 서버에 설치 가능

3. Yobi - Nhn 제작. (http://yobi.io/) 한국서비스

 

Trackback 0 And Comment 0

Update 및 FixedUpdate 사용시 주의점

|

void Update () 는 일반적인 연산 및 Translate로 이동할시 사용

void FixedUpdate()는Rigidbody를 이용한 연산시 사용함 ex) AddForce 

 

FixedUpdate는 일정한 시간마다 호출되기 때문에 정확한 물리연산을 필요로 할때 사용하면된다.


Trackback 0 And Comment 0

유니티 에디터 notepad++로 변경하기

|

http://wiki.unity3d.com/index.php?title=Using_Notepad_Plus_Plus_as_a_script_editor

'잡다한것들전부 > ' 카테고리의 다른 글

git 원격저장소 종류  (0) 2015.06.29
Update 및 FixedUpdate 사용시 주의점  (0) 2014.01.25
유니티 에디터 notepad++로 변경하기  (0) 2014.01.22
레벨 단위 기획  (0) 2014.01.21
유니티 스크립트 에디터ㄱ  (0) 2014.01.21
Animation Parameters  (0) 2014.01.18
Trackback 0 And Comment 0

레벨 단위 기획

|

1레벨

2레벨

3레벨

4레벨

5레벨

.

.

.

Trackback 0 And Comment 0

유니티 스크립트 에디터ㄱ

|

기본으로 모노디벨로퍼

그리고 가장많이 쓰는 visiual studio


바꿀 예정인것

notepad++

이나

sublime


visual studio 는 살짝 무거운 감이 있어 바꿀 예정임.

Trackback 0 And Comment 0

Animation Parameters

|

Animation Parameters

Animation Parameters are variables that are defined within the animation system but can also be accessed and assigned values from scripts. For example, the value of a parameter can be updated by an animation curve and then accessed from a script so that, say, the pitch of a sound effect can be varied as if it were a piece of animation. Likewise, a script can set parameter values to be picked up by Mecanim. For example, a script can set a parameter to control a Blend Tree.

Default parameter values can be set up using the Parameters widget in the bottom left corner of the Animator window. They can be of four basic types:

  • Vector - a point in space
  • Int - an integer (whole number)
  • Float - a number with a fractional part
  • Bool - true or false value

Parameters can be assigned values from a script using functions in the Animator class: SetFloatSetInt, and SetBool.

Here's an example of a script that modifies parameters based on user input

using UnityEngine;
using System.Collections;


public class AvatarCtrl : MonoBehaviour {

	protected Animator animator;

	public float DirectionDampTime = .25f;

	void Start () 
	{
		animator = GetComponent<Animator>();
	}

	void Update () 
	{
		if(animator)
		{
			//get the current state
			AnimatorStateInfo stateInfo = animator.GetCurrentAnimatorStateInfo(0);

			//if we're in "Run" mode, respond to input for jump, and set the Jump parameter accordingly. 
			if(stateInfo.nameHash == Animator.StringToHash("Base Layer.RunBT"))
			{
				if(Input.GetButton("Fire1")) 
					animator.SetBool("Jump", true );
			}
			else
			{
				animator.SetBool("Jump", false);				
			}

			float h = Input.GetAxis("Horizontal");
			float v = Input.GetAxis("Vertical");

			//set event parameters based on user input
			animator.SetFloat("Speed", h*h+v*v);
			animator.SetFloat("Direction", h, DirectionDampTime, Time.deltaTime);
		}		
	}   		  
}


Trackback 0 And Comment 0

[펌] 유니티 디바이스 화면에 디버깅 콘솔 찍기

|
출처 : http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_Lecture&page=1&sn1=&divpage=1&sn=on&ss=on&sc=on&keyword=%C0%AF%B4%CF%C6%BC&select_arrange=last_comment&desc=desc&no=317


using UnityEngine;
using System;
using System.Collections.Generic;
 
/// <summary>
/// A console that displays the contents of Unity's debug log.
/// </summary>
/// <remarks>
/// Developed by Matthew Miner (www.matthewminer.com)
/// Permission is given to use this script however you please with absolutely no restrictions.
/// </remarks>
public class Console : MonoBehaviour
{
public static readonly Version version = new Version(1, 0);
 
struct ConsoleMessage
{
public readonly string message;
public readonly string stackTrace;
public readonly LogType type;
 
public ConsoleMessage (string message, string stackTrace, LogType type)
{
this.message = message;
this.stackTrace = stackTrace;
this.type = type;
}
}
 
public KeyCode toggleKey = KeyCode.BackQuote;
 
List<ConsoleMessage> entries = new List<ConsoleMessage>();
Vector2 scrollPos;
bool show;
bool collapse;
 
// Visual elements:
 
const int margin = 20;
Rect windowRect = new Rect(margin, margin, Screen.width - (2 * margin), Screen.height - (2 * margin));
 
GUIContent clearLabel = new GUIContent("Clear", "Clear the contents of the console.");
GUIContent collapseLabel = new GUIContent("Collapse", "Hide repeated messages.");
 
void OnEnable () { Application.RegisterLogCallback(HandleLog); }
void OnDisable () { Application.RegisterLogCallback(null); }
 
void Update ()
{
if (Input.GetKeyDown(toggleKey)) {
show = !show;
}
}
 
void OnGUI ()
{
if (!show) {
return;
}
 
windowRect = GUILayout.Window(123456, windowRect, ConsoleWindow, "Console");
}
 
/// <summary>
/// A window displaying the logged messages.
/// </summary>
/// <param name="windowID">The window's ID.</param>
void ConsoleWindow (int windowID)
{
scrollPos = GUILayout.BeginScrollView(scrollPos);
// Go through each logged entry
for (int i = 0; i < entries.Count; i++) {
ConsoleMessage entry = entries[i];
 
// If this message is the same as the last one and the collapse feature is chosen, skip it
if (collapse && i > 0 && entry.message == entries[i - 1].message) {
continue;
}
 
// Change the text colour according to the log type
switch (entry.type) {
case LogType.Error:
case LogType.Exception:
GUI.contentColor = Color.red;
break;
 
case LogType.Warning:
GUI.contentColor = Color.yellow;
break;
 
default:
GUI.contentColor = Color.white;
break;
}
 
GUILayout.Label(entry.message);
}
 
GUI.contentColor = Color.white;
 
GUILayout.EndScrollView();
 
GUILayout.BeginHorizontal();
 
// Clear button
if (GUILayout.Button(clearLabel)) {
entries.Clear();
}
// Collapse toggle
collapse = GUILayout.Toggle(collapse, collapseLabel, GUILayout.ExpandWidth(false));
 
GUILayout.EndHorizontal();
 
// Set the window to be draggable by the top title bar
GUI.DragWindow(new Rect(0, 0, 10000, 20));
}
 
/// <summary>
/// Logged messages are sent through this callback function.
/// </summary>
/// <param name="message">The message itself.</param>
/// <param name="stackTrace">A trace of where the message came from.</param>
/// <param name="type">The type of message: error/exception, warning, or assert.</param>
void HandleLog (string message, string stackTrace, LogType type)
{
ConsoleMessage entry = new ConsoleMessage(message, stackTrace, type);
entries.Add(entry);
}
}


유용하네요

아무 GameObject에 컴포넌트로 붙이고

` (FPS에서 콘솔 버튼으로 많이 쓰는) 누르시면.... 좋겠으나...





폰은... 자판이 없을테니 별도로 콜하는 메서드 만드셔야합니다.


show 키변경으로 쓰시려면 KeyCode.Menu 권장


Trackback 0 And Comment 0

[펌] 유니티3D Conditional Attribute 사용

|

출처 : http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_Lecture&page=1&sn1=&divpage=1&sn=on&ss=on&sc=on&keyword=%C0%AF%B4%CF%C6%BC&select_arrange=last_comment&desc=desc&no=315



·미리보기 | 소스복사·
  1. using ConditionalAttribute = System.Diagnostics.ConditionalAttribute;  
·미리보기 | 소스복사·
  1. using UnityEngine;  
  2. using System.Collections;  
  3.   
  4. using ConditionalAttribute = System.Diagnostics.ConditionalAttribute;  
  5.   
  6. public class NewBehaviourScript : MonoBehaviour {  
  7.   
  8.     // Use this for initialization  
  9.     void Start () {  
  10.       
  11.     }  
  12.       
  13.     // Update is called once per frame  
  14.     void Update () {  
  15.         call0 ();  
  16.         call1 ();  
  17.         call2 ();     
  18.     }  
  19.       
  20.     void call0()  
  21.     {  
  22.         Debug.Log("call0");  
  23.     }     
  24.       
  25.     [Conditional("CON1")]  
  26.     void call1()  
  27.     {  
  28.         Debug.Log("call1");  
  29.     }  
  30.       
  31.     [Conditional("CON2")]  
  32.     void call2()  
  33.     {  
  34.         Debug.Log("call2");  
  35.     }     
  36. }  


Trackback 0 And Comment 0

[펌] 유니티 엔진 - 텍스트 파일을 이용하여 에셋 번들 한꺼번에 생성 하기

|

출처 : http://lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_Lecture&page=1&sn1=&divpage=1&sn=on&ss=on&sc=on&keyword=%C0%AF%B4%CF%C6%BC&select_arrange=last_comment&desc=desc&no=309


에셋 번들을 만들어야 하는데 파일 하나하나 찍어서 만들기가 너무 귀찮았습니다.

플랫폼마다 똑같은 노가다를 반복 해야 한다고 생각하니 눈앞이 캄캄하더군요.
그래서 텍스트 파일에 리스트를 쭉 적어놓고 읽어와서 일괄 생성하게 만들었습니다.


아래와 같이 파일의 경로를 쭉 적어줍니다.
patch_list.txt 로 저장을 하고 위치는 Resources폴더 아래에 둡니다.


Resources/Sound/main.ogg
Resources/Sound/fire.wav
Resources/character/human.prefab
Resources/character/lion.prefab
Resources/ui/shop.prefab
.
.
.
[Resources/patch_list.txt의 내용]



소스코드는 Assets/Editor 밑에 xxx.cs 로 넣어놓습니다. 파일 이름은 아무거나 넣어도 됩니다.
·미리보기 | 소스복사·
  1. [MenuItem("Assets/Generate All from file(Windows)")]    // 메뉴가 들어갈 위치입니다. Assets메뉴 하위.
  2. static void GenerateAll()  
  3. {  
  4.     // 빌드 타겟은 적절하게 맞춰주면 되겠죠.  
  5.     ExportAll(BuildTarget.StandaloneWindows);  
  6. }  
  7.   
  8.   
  9.   
  10.   
  11.   
  12. static void ExportAll(BuildTarget target)    
  13. {    
  14.     // 리스트를 읽어와서 줄 단위로 분리 해 줍니다.  
  15.     TextAsset filelist_obj = Resources.Load("patch_list"typeof(TextAsset)) as TextAsset;    
  16.     string[] filelist = filelist_obj.text.Split('\n');    
  17.     
  18.   
  19.     foreach (string original_path in filelist)    
  20.     {  
  21.         // *중요함! 개행 문자를 제거 해 줍니다.  
  22.         string path = original_path.Trim('\n');    
  23.         path = path.Trim('\r');    
  24.     
  25.         if (path.Length <= 0)    
  26.         {    
  27.             continue;    
  28.         }    
  29.   
  30.         // 확장자, 경로 다 빼고 파일 이름만 쏙 빼옵니다.    
  31.         int last_split_pos = path.LastIndexOf('/') + 1;    
  32.         int extend_length = path.Length - path.LastIndexOf('.');    
  33.         string filename = path.Substring(last_split_pos, (path.Length - last_split_pos) - extend_length);    
  34.   
  35.         // 번들 파일이 생성될 경로 입니다.
  36.         // 프로젝트 상위 폴더에 "patch/(플랫폼명)" 형태의 폴더를 미리 만들어 놓아야 합니다.
  37.         // 예)
  38.         // d:/project/patch/Android    <- 번들 파일이 생성될 폴더
  39.         // d:/project/gamecodi  <- 프로젝트 폴더
  40.         // d:/project/gamecodi/Assets
  41.         string output_path = string.Format("../patch/{0}/{1}.unity3d", target.ToString(), filename);    
  42.   
  43.         // 리스트에 기입된 경로에서 오브젝트를 로드합니다.  
  44.         string included_path = "Assets/" + path;    
  45.         UnityEngine.Object obj = Resources.LoadAssetAtPath(included_path, typeof(UnityEngine.Object));    
  46.         if (obj == null)    
  47.         {    
  48.             Debug.LogError("Cannot find the resource. " + included_path);    
  49.             continue;    
  50.         }    
  51.   
  52.         // 생성!  
  53.         BuildPipeline.BuildAssetBundle(obj, null, output_path,    
  54.             BuildAssetBundleOptions.CollectDependencies | BuildAssetBundleOptions.CompleteAssets,    
  55.             target);    
  56.     
  57.         Debug.Log("completed... : " + included_path);    
  58.     }    
  59. }    
파일 경로를 읽어온 뒤 개행 문자를 제거 해 주는것이 굉장히 중요합니다.
이것을 빼먹고 했더니 리소스 로딩이 실패나서 한참 고생했습니다.ㅠ_ㅠ

이렇게 만들어 놓고 플랫폼만 바꿔서 클릭 한번만 하면 되겠습니다.
끝~


Trackback 0 And Comment 0
prev | 1 | 2 | 3 | 4 | ··· | 7 | next