2020년 3월 4일 수요일

Unity getter setter 예제

getter setter 예제~~

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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System;
public class TextShift : MonoBehaviour
{
    public Material material;
    public GameObject RootObj;
    public CapsuleCollider[] allCoilliders;
    float firstvalue = 0;
    float centerValue = 0.34f;
    float lastValue = 0.7f;
    /// <summary>
    /// 특정값(회전값)이 들어오면 회전값 만큼 텍스쳐를 시프팅 하는 기능
    /// </summary>
    private float currentOffsetValue;
    public float CurrentOffsetValue
    {
        get { return currentOffsetValue; }
        set
        {
            OnShifting(value);//해당 변수가 set 되면 시프팅 함수 실행
            currentOffsetValue = value;
        }
    }
    private void Start()
    {
        CollistionInit();
    }
    void CollistionInit()
    {
        if (RootObj == null)
            return;
        allCoilliders = RootObj.GetComponentsInChildren<CapsuleCollider>();
        this.GetComponent<Cloth>().capsuleColliders = allCoilliders;
    }
    //원하는 값으로 텍스쳐를 시프팅 하는 함수
    public void OnShifting(float value)
    {
        if (cor_shifting != null)
        {
            StopCoroutine(cor_shifting);
            cor_shifting = null;
        }
        cor_shifting = textureShifting(value);
        StartCoroutine(cor_shifting);
    }
    
    
    IEnumerator cor_shifting;
    IEnumerator textureShifting(float value)
    {
        float addvalue = 0.00005f;
        while (material.mainTextureOffset.y < value)
        {
            material.mainTextureOffset = new Vector2(1f, material.mainTextureOffset.y + addvalue);
            addvalue += 0.00005f;   
            yield return new WaitForEndOfFrame();
        }
        while (material.mainTextureOffset.y > value)
        {
            material.mainTextureOffset = new Vector2(1f, material.mainTextureOffset.y - addvalue);
            addvalue += 0.00005f;
            yield return new WaitForEndOfFrame();
        }
        material.mainTextureOffset = new Vector2(1f, value);
    }
    
    
}
cs


댓글 없음:

댓글 쓰기

git rejected error(feat. cherry-pick)

 문제 아무 생각 없이 pull을 받지않고 로컬에서 작업! 커밋, 푸시 진행을 해버렷다. push에선 remote와 다르니 당연히 pull을 진행해라고 하지만 로컬에서 작업한 내용을 백업하지 않고 진행하기에는 부담스럽다(로컬작업 유실 가능성) 해결하려...