Clolent

Mesh Renderer 에서 

Cast Shadows : 조명을 받으면 그림자를 만든다 연산량 어마어마함

Receive Shadows : 그 만들어진 그림자를 받는다. 어마어마함

Use Light Probes, Reflection Probes : 연상량 어마어마함


※ 빈 프로젝트를 만들어서, 그곳에서 테스트후 본 프로젝트로 옮기는 방식을 취하자, 


※ LeanTween :

   LeanTween.move( 누가 , 어디로, 얼마동안 ). 어떻게  이동

LeanTween.roatate( 누가 , 어디로, 얼마동안 ). 어떻게 회전 

LeanTween.scale 크기



ex ) LeanTween.move(gameObject, target, 5.0f).setEase(LeanTweenType.easeInOutExpo);


LeanTween.scale(gameObject, Vector3.one * 2, 1.0f).

setEase(LeanTweenType.easeInOutBack).setLoopPingPong(4);


   최종 마지막 하나만 더있으면 되다. 바로 Value 에 대한 변화

valutTo


onstart : Tween 애니메이션이 시작할 때 호출할 함수

onupdate : Twee 이 진행되는 과정중에 매 프레임 호출할 함수

oncomplete : Tween 애니메이션끝나면 호출되는 함수

onXXXtarget : 호출된 함수를 들고 있는 GameObject

ignoretimescale : 이 옵션값이 true 로 설정되어있다면 Time.timeSclae 이 0이어도 TWEN 앤메이션을 재생하게함. FLASE 면 다 멈추면 자신도 멈


※ LeanTween 반환값은 LTDescr 이고 이걸로 받은다음에 이제 위의 onStart 등을

 설정할수 있다.

LTDescr desc = LeanTween.rotate(gameObject, targetRotation, time).setEase(LeanTweenType.easeOutExpo);

            LeanTween.scale(gameObject, Vector3.one, scaleTime).setEase(LeanTweenType.easeOutElastic);


            desc.setOnStart(TweenStart);

            desc.setOnUpdate(TweenUpdate);

            desc.setOnComplete(TweenComplete);

※ 각각 실행될 함수들을 지정해주는것 일종의 Delegate로 

Ontart,OnComplete 는 void 형 인자 없는 형태를,

Update 는 void 형태의 float 하나를 인자로 받는다.

        }

    }


    void TweenStart()

    {

        Debug.Log("Start");

    }

    void TweenUpdate( float percentage)

    {

        Debug.Log("Update" + percentage );


    }

    void TweenComplete()

    {

        Debug.Log("Complete");


    }


Value 어떻게 쓰는가 ! 


            LTDescr desc = LeanTween.value(gameObject, 0.0f, 255.0f, 1.0f);

            desc.setOnStart(TweenStart);

            desc.setOnUpdate(TweenUpdate);

            desc.setOnComplete(TweenComplete);


이렇게 하고 이제 


    void TweenUpdate( float value)

    {

        Debug.Log("Update" + value );

     mat.color = Color.Lerp(Color.black, Color.green, value / 255.0f);


    }


TweenUpdate 함수 가 저 변하는 value 값을 float로 받아온다. 이걸 사용하면 된다. 


그래프 모여있는거 : http://robertpenner.com/easing/easing_demo.swf




전체 코드 


using UnityEngine;                                            

using System.Collections;                                                    


public class ScaleSample : MonoBehaviour {                    

    Material mat;                                                                            

void Start()                                                                                            

    {                                                                                                                

        mat = gameObject.GetComponent<MeshRenderer>().material;                

    }                                                                                                                

// Update is called once per frame                                        

void Update ()                                                                

    {                                                                                                        

        if (Input.GetButtonDown("Fire1"))                                                                

        {                                                                                                                

            LeanTween.scale(gameObject, Vector3.one * 2,                                                     1.0f).setEase(LeanTweenType.easeInOutBack).setLoopPingPong(4);                

        }                                                                                                            

        if (Input.GetButtonDown("Fire2"))                                                            

        {                                                                                                    

            LeanTween.rotate(gameObject,new Vector3( 1080.0f,0,0),                                                 2.0f).setEase(LeanTweenType.easeOutExpo);                                    

//            LeanTween.scale(gameObject, Vector3.one * 2,                                             1.0f).setEase(LeanTweenType.easeInOutBack).setLoopPingPong(4);                    

        }                                                                                                    

        if (Input.GetKey(KeyCode.Q))                                                            

        {                                                                                                

            transform.eulerAngles = Vector3.zero;                                    

            transform.localScale = Vector3.zero;                                                


            Vector3 targetRotation = new Vector3(0.0f, 1080.0f, 0.0f);                        

            float time = 3.0f;                                                                            

            float scaleTime = 1.5f;                                                                


            //LTDescr desc = LeanTween.rotate(gameObject, targetRotation,                 time).setEase(LeanTweenType.easeOutExpo);                                                

            //LeanTween.scale(gameObject, Vector3.one,                                     scaleTime).setEase(LeanTweenType.easeOutElastic)     ;                                        

            LTDescr desc = LeanTween.value(gameObject, 0.0f, 255.0f, 1.0f);                

            desc.setOnStart(TweenStart);                                                            

            desc.setOnUpdate(TweenUpdate);                                                            

            desc.setOnComplete(TweenComplete);                                    

        }

    }


    void TweenStart()                                            

    {                                            

        gameObject.transform.localScale = Vector3.one;                            

        Debug.Log("Start");                                    

        mat.color = Color.black;                                

    }                                                                    

    void TweenUpdate( float value)                                        

    {                                                                                

        Debug.Log("Update" + value );                                            

     mat.color = Color.Lerp(Color.black, Color.green, value / 255.0f);                        

    }                                                                                                    

    void TweenComplete()                        

    {                                                            

        Debug.Log("Complete");                    

    }                        

}                    




댓글 로드 중…

블로그 정보

Clolent - 커피물조절달인

최근에 게시된 글