'전체 글'에 해당되는 글 162건

  1. 2020.02.02 유니티 객체 생성하기 (Instantiate)
  2. 2020.01.30 7.234 매개변수에 대한 이해 (value, reference, pointer)
  3. 2020.01.26 6.7 포인터 기본
  4. 2020.01.24 벡터

radial Instantiate

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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class radialInstantiate : MonoBehaviour
{
    public GameObject obj;
    public int number;
    public float radius;
    public float Rspeed;
 
    private void Awake()
    {
        for(int i=0; i<number; i++)
        {
            float angle = i * Mathf.PI * 2/number;
 
            GameObject child =
            Instantiate(obj,
            new Vector3(transform.position.x + Mathf.Cos(angle) * radius,
            transform.position.y + Mathf.Sin(angle) * radius, transform.position.z),
            Quaternion.Euler(0,0,(360/number) * i - 90));
 
            child.transform.SetParent(this.transform);
        }
    }
 
    private void Update()
    {
        //transform.rotation = Quaternion.Euler(0,0,Time.deltaTime * 100);
        transform.Rotate(00, Time.deltaTime * Rspeed);
    }
}
 
cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class radialGenerator : MonoBehaviour
{
public GameObject prefab;
public int prefabNum;
public float radius;
public float animSpeed;
public bool animation = true;
private void Awake()
{
for (int i = 0; i < prefabNum; i++)
{
float angle = i * Mathf.PI * 2 / prefabNum;
//원형으로 prefab생성
GameObject child =
Instantiate(prefab, new Vector3(
transform.position.x + Mathf.Cos(angle) * radius,
transform.position.y ,
transform.position.z + Mathf.Sin(angle) * radius),
Quaternion.Euler(0, -90 -((360/prefabNum)*i), 0));
child.transform.SetParent(this.transform);
}
}
private void Update()
{
//회전 animation
if(animation)
{
transform.Rotate(0, 0, Time.deltaTime * animSpeed);
}
}
}

random Instantiate

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
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class randomInstantiate : MonoBehaviour
{
    public GameObject obj;
    public int number;
 
    private float time = 0;
    public float speed;
 
    private List<Transform> objs = new List<Transform>();
 
    void Awake()
    {
        for (int i = 0; i < number; i++)
        {
            float randomPosX = Random.Range(-5050);
            float randomPosY = Random.Range(7100);
 
            GameObject child =
            Instantiate(obj,
            new Vector3(transform.position.x + randomPosX, 2.5f, transform.position.z + randomPosY), Quaternion.identity);
            child.transform.SetParent(this.transform);
            objs.Add(child.transform);
        }
    }
 
    private void Update()
    {
        time += Time.deltaTime;
 
        if(time>speed)
        {
            for (int i = 0; i < number; i++)
            { 
                float randomPosX = Random.Range(-5050);
                float randomPosY = Random.Range(7100);
 
                objs[i].localPosition =
                    new Vector3(transform.position.x + randomPosX, 0, transform.position.z + randomPosY);
            }
            time = 0;
        }
 
        for (int i = 0; i < number; i++)
        {
            float randomS = Random.Range(.1f, 2f);
            objs[i].localScale = new Vector3(randomS, randomS, 1);
        }
    }
}
 
cs


'programming > c#' 카테고리의 다른 글

유니티 textureOffset  (0) 2020.02.19
유니티 line renderer로 그리드 생성  (0) 2020.02.15
유니티 Physics - 움직임의 jitter를 줄이는 방법  (0) 2020.01.04
GPU Instancing 최적화! 최적화!  (1) 2020.01.01
GetPixels  (0) 2020.01.01
Posted by 도이(doi)
,

매개변수로 인수 전달하기

1. 값에 의한 전달 ( call by value )

외부로 영향 x , 새롭게 값 정의 복사되어 초기화 됨. 


2. 참조에 의한 전달 ( call by reference )

주소가 모두 같음, 효율성이 높아서 사용성 높음.


3. 주소에 의한 전달 ( call by address )

주소값 같음. 메모리에 저장 된 값 같음. 
포인터 변수도 변수이기 때문에  포인터의 주소는 다르게 나옴. 

배열은 포인터 

배열 : 배열에 담긴 첫번재 값의 주소를 담음.

'programming > c++' 카테고리의 다른 글

6.7 포인터 기본  (0) 2020.01.26
6.5 정적 다차원 배열  (0) 2019.05.06
*6.4 배열과 선택 정렬 selection sort (복습)  (0) 2019.05.06
6.3 배열과 반복문  (0) 2019.05.06
6.1 배열 기초적인 사용법  (0) 2019.05.06
Posted by 도이(doi)
,

포인터

메모리 주소를 저장하는 변수 


포인터의 위험성

쓰레기 주소값이 들어간 경우 dereferencing을 시도하게 되면 
엉뚱한 곳에서 데이터를 찾기 때문에 오류가 발생한다. 

*de referencing : 주소 값을 찍어서 값을 가져오는 것 

이런 문제를 방지하기 위해서

Null Pointer를 많이 사용한다. 


array변수는 배열이 아니라 Pointer다.

주소 값을 찍어보면 array는 첫번째 요소의 주소 값을 가져온다. 

array[ ]가 parameter로 사용하게 될 경우 
내부적으로 포인터가 된다. 

함수 밖에서 포인터 값을 바꿔도  다른 함수에서 값이 적용된다. 

Posted by 도이(doi)
,

벡터

data/information 2020. 1. 24. 19:25

벡터란? 

크기와 방향을 함께 가지는 양. 


단위 벡터(normal vector)?

크기가 1인 방향을 가진 벡터. 
주로, 방향이 중요할 때 사용. 


벡터의 덧셈 / 벡터의 뺄셈 

벡터의 덧셈은 한 점에서 특정 거리만큼 떨어진 점을 찾을 때 사용한다.

벡터의 뺄셈은 두 점 사이의 거리를 구한다. (캐릭터가 목적지를 향해 이동할 때 사용.)


벡터의 내적(dot product)?

두 벡터 간의 사이각을 구할 수 있다. 
단위 벡터를 사용하여 각을 구할 수 있다. 


벡터의 외적(cross product)?

직교하는 벡터를 구할 때 사용 함. (법선 벡터)


'data > information' 카테고리의 다른 글

유니티 compute shader 관련 자료  (0) 2020.04.28
유니티 cel shader 관련 자료  (0) 2020.04.26
기본용어 - 블로그  (0) 2019.03.17
모두의 연구소  (0) 2019.02.13
티스토리 링크 미리보기  (0) 2019.01.16
Posted by 도이(doi)
,