'Unity/찾아본것'에 해당되는 글 10건

  1. 2020.08.12 Button Image 변경
  2. 2020.08.11 Unity Button Array onClick
  3. 2020.08.11 Unity GameObject 부모 자식 관계 설정
  4. 2019.07.22 Unity Custom Inspector 커스텀 인스펙터
  5. 2019.06.14 <화면 나누기> ViewportRect사용
  6. 2019.05.03 setdestination can only be called on an active agent that has been placed on a navmesh
  7. 2019.05.02 유니티 현재의 씬 다시 불러오기
  8. 2019.04.24 Unity Canvas

Button Image 변경

Unity/찾아본것 2020. 8. 12. 10:11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
public class SceneTestStageBtn : MonoBehaviour
{
    public Button btn;//버튼
    public Sprite img;//바꿀 이미지
 
    void Start()
    {
        this.btn.GetComponent<Image>().sprite = this.img;
    }
}
 
cs

https://answers.unity.com/questions/1127944/changing-the-image-of-a-button-with-a-script.html

:

Unity Button Array onClick

Unity/찾아본것 2020. 8. 11. 23:55
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
 
public class TestButtonArray : MonoBehaviour
{
    public Button[] btns;
 
    private void Start()
    {
        for (int i = 0; i < this.btns.Length; i++)
        {
            int index = i;
            btns[index].onClick.AddListener(() => this.TaskOnClick(index));
        }
    }
 
    private void TaskOnClick(int index)
    {
        Debug.Log("니가 누른 버튼" + index, btns[index]);
    }
}
 
cs


https://answers.unity.com/questions/1376530/add-listeners-to-array-of-buttons.html

:

Unity GameObject 부모 자식 관계 설정

Unity/찾아본것 2020. 8. 11. 22:14

https://docs.unity3d.com/ScriptReference/Transform-parent.html

:

Unity Custom Inspector 커스텀 인스펙터

Unity/찾아본것 2019. 7. 22. 16:14



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using UnityEngine;
 
public class Cube : MonoBehaviour
{
    void Start()
    {
        GenerateColor();
    }
 
    public void GenerateColor()
    {
        this.GetComponent<Renderer>().sharedMaterial.color = Random.ColorHSV();
    }
 
    public void Reset()
    {
        this.GetComponent<Renderer>().sharedMaterial.color = Color.white;
    }
}
 
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using UnityEngine;
using UnityEditor;
 
[CustomEditor(typeof(Cube))]
public class CubeEditor : Editor
{
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
 
        Cube cube = (Cube)target;
 
        GUILayout.BeginHorizontal();
 
        if (GUILayout.Button("GenerrateColor"))
        {
            cube.GenerateColor();
        }
 
        if (GUILayout.Button("ResetColor"))
        {
            cube.Reset();
        }
 
        GUILayout.EndHorizontal();
    }
}
 
cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class Sphere : MonoBehaviour
{
    public float baseSize = 1f;
 
    void Update()
    {
        float anim = baseSize + Mathf.Sin(Time.time * 8f) * baseSize / 7f;
        transform.localScale = Vector3.one * anim;
    }
}
 
cs



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using UnityEngine;
using UnityEditor;
 
[CustomEditor(typeof(Sphere))]
public class SphereEditor : Editor
{
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
 
        Sphere sphere = (Sphere)target;
 
        sphere.baseSize = EditorGUILayout.Slider(sphere.baseSize, .1f, 2f);
        sphere.transform.localScale = Vector3.one * sphere.baseSize;
    }
}
 
cs



왜 sphere..가 같이 색이 변하지 ( ? )

:

<화면 나누기> ViewportRect사용

Unity/찾아본것 2019. 6. 14. 18:03


//unity API
https://docs.unity3d.com/kr/2018.1/Manual/class-Camera.html

//도움글

http://devkorea.co.kr/bbs/board.php?bo_table=m03_qna&wr_id=38102








Viewport Rect
카메라 뷰가 드로우될 화면의 위치를 나타내는 네 개의 값을 의미합니다. 뷰포트 좌표로 측정됩니다(01 사이의 값).

ViewportRect를 드로우될 화면의 위치와 크기를 조정한다.
(달리기 경주 게임이나, 위아래로 화면을 나눠서 멀티플레이를 진행하는 레이싱게임등에 쓰면 좋을 것 같음, 미니맵 표시등에도 사용 가능)


//찾아볼 것
렌더 텍스처 방식으로도 화면을 나눌 수 있다고 한다. 찾아보자

https://docs.unity3d.com/kr/2018.1/Manual/class-RenderTexture.html

https://www.youtube.com/watch?v=28JTTXqMvOU&feature=share


--------------------------------------------------------------------------------------
랜더 텍스쳐 방식으로 UI에 작게 카메라 랜더링을 할 수 있다.
Canvas를 사용하여, 미니맵을 만들때 유용하게 쓰일듯?

:

setdestination can only be called on an active agent that has been placed on a navmesh

Unity/찾아본것 2019. 5. 3. 15:27


네브메쉬가 적용된 캐릭터의 좌표를 동적으로 할당할때 생기는 문제


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
using UnityEngine.UI;
 
public class TestMove : MonoBehaviour
{
    public Button btnStart;
    public GameObject StartPos;
    public GameObject EndPos;
 
    private GameObject hobPrefab;
    private GameObject hob;
    private NavMeshAgent agent;
 
    private bool nope;
 
    private void Awake()
    {
        this.hobPrefab = Resources.Load<GameObject>("Hoverbuggy");
    }
 
    private void Start()
    {
        this.StartGame();
    }
 
    private void StartGame()
    {
        StartCoroutine(this.StartGameImpl());
    }
 
    private IEnumerator StartGameImpl()
    {
        while (true)
        {
            this.btnStart.onClick.AddListener(() =>
            {
                if(!nope)
                {
                    this.nope = true;
 
                    this.hob = Instantiate(hobPrefab);
                    this.agent = this.hob.GetComponent<NavMeshAgent>();
                    this.agent.enabled = false;
                    this.hob.transform.position = new Vector3(this.StartPos.transform.position.x, 0.3f, this.StartPos.transform.position.z);
                    this.agent.enabled = true;
                    this.agent.destination = this.EndPos.transform.position;
                }
            });
            yield return null;
        }
    }
 
}
 
cs


44~49번줄
캐릭터를 인스턴스화 하고, 네브메쉬를 비활성화 한 뒤, 새로운 Vector3를 주고 네브메쉬를 다시 활성화한다.





http://egloos.zum.com/foodybug/v/4102604

'Unity > 찾아본것' 카테고리의 다른 글

Unity Custom Inspector 커스텀 인스펙터  (0) 2019.07.22
<화면 나누기> ViewportRect사용  (0) 2019.06.14
유니티 현재의 씬 다시 불러오기  (0) 2019.05.02
Unity Canvas  (0) 2019.04.24
Animator Length 구하기 API  (0) 2019.04.23
:

유니티 현재의 씬 다시 불러오기

Unity/찾아본것 2019. 5. 2. 13:41

Docs : https://docs.unity3d.com/ScriptReference/SceneManagement.Scene-buildIndex.html
http://lonpeach.com/2017/01/27/unity3d-how-to-load-current-level-or-scene/


1
SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
cs


:

Unity Canvas

Unity/찾아본것 2019. 4. 24. 18:58

캔버스, UI요소를 배치하기 위한 영역


UI요소는 Canvas의 자식요소여야 함


요소는 첫번째 자식이 맨 처음 그려지고, 그 다음 순서대로 그려지며

나중에 그려진 UI요소가 위에 표시 됨


요소 정렬을 위해. SetAsFirstSibling, SetAsLastSibling, SetSiblingIndex를 사용함


: