public class NPC_Animation : MonoBehaviour
{
    Animator anim;

    // Start is called before the first frame update
    void Start()
    {
        anim = GetComponent<Animator>();
        anim.applyRootMotion = false;//humanoid에서 캐릭터 위치가 바뀌는것을 방지한다.
        
    }

    // Update is called once per frame
    void Update()
    {
        int pickAnumber = Random.Range(1, 6);
        anim.SetInteger("ani", pickAnumber); //ani라는 int를 animator에 추가

    }
}

캐릭터의 모션 파라미터 타입을 int로 설정한후에 랜덤으로 동작하게 만들었습니다.

'Unity > C#' 카테고리의 다른 글

유니티의 Object 이해  (0) 2020.12.06
Scene 재시작  (0) 2020.11.21
EditorWindow  (0) 2020.10.30
간단한 애니메이션 스크립트  (0) 2020.09.08
C# 기초 기억창고  (0) 2020.08.09

애초 surface shader로 제작을 하였으나, 혹시 URP로 넘어갈것을 대비해야될거 같아서

Amplify shader로 만들어놨습니다. 확실히...코드로 짠거보다 복잡한 모양새군요.

'Unity > Shader Graph & Amplify' 카테고리의 다른 글

sign값을 이용한 포지션 이동  (0) 2020.11.18
Amplify Shader 주요 기능  (0) 2020.11.04
Shader graph-input03  (0) 2020.07.12
Shader graph-input02  (0) 2020.06.29
Shader graph -input01  (0) 2020.06.11
using UnityEngine;
using UnityEditor;
using System.Collections;

public class ryo_dir : EditorWindow
{
    [MenuItem("ZCustom/ryo_direct",false, priority:1)]//메뉴생성


    static void ShowWindow()
    {
        // 생성되어있는 윈도우를 가져온다. 없으면 새로 생성한다. 싱글턴 구조인듯하다
        ryo_dir window = (ryo_dir)EditorWindow.GetWindow(typeof(ryo_dir));

    }

    public string ABB;
    int BoxMaker=1;
    Object GoObject = null;
    Object SceneObject3 = null;

    void OnGUI()
    {
        ABB = EditorGUI.TextField(new Rect(10,10,300,17), "글자써봐", ABB);

        
        //버튼으로 오브젝트 실행
        BoxMaker = EditorGUI.IntField(new Rect(10, 30, 300, 17), "게임오브젝트", BoxMaker);

        if (GUI.Button(new Rect(100, 80, 80, 40), "BoxMaker"))
        {
            for (int i = 0; i < BoxMaker; i++)
            {
                GameObject obj = new GameObject();
                obj.name = "GameObject" + i;
            }
 
        }

        //버튼 위치보기
        GUI.Button(new Rect(100, 140, 80, 40), "Button2");  // 가로위치,세로위치,박스세로, 박스가로


        //버튼 띄우기
        GUILayout.Space(200);
        
        
        //오브젝트필드
        GoObject = EditorGUILayout.ObjectField("오브젝트넣기", GoObject, typeof(GameObject));
  
  		//씬넣기
        GUILayout.Space(5);
        SceneObject3 = EditorGUILayout.ObjectField("씬넣기", SceneObject3, typeof(SceneAsset));

    }

    // 또하나의 탭만들기
    [MenuItem("ZCustom/ryo_what2",false,priority:2)]
    static void Twwoo()
    {
        

    }

}

이것저것 모아봤습니다.

'Unity > C#' 카테고리의 다른 글

Scene 재시작  (0) 2020.11.21
캐릭터 랜덤 모션  (0) 2020.11.02
간단한 애니메이션 스크립트  (0) 2020.09.08
C# 기초 기억창고  (0) 2020.08.09
MiniPorfiler  (0) 2020.07.29

뭔가 써먹으려고 만들었지만 써먹지 못한...

rhy_01.shader
0.00MB

 

 

 

뭔가 써먹으려고 만들었지만 써먹지 못한...

rhy_02.shader
0.00MB

 

'Unity > Surface Shader' 카테고리의 다른 글

가벼운 툰 셰이더  (0) 2020.12.16
가짜 리플렉션  (0) 2020.11.10
Alpha  (0) 2020.05.24
RampTexture  (0) 2020.05.21
OUTLINE  (0) 2020.05.17

같은 조건에서 복사된 오브젝트와 attach 한 오브젝트의 stats를 비교 테스트진행하였습니다.

역시나, attach한것이 훠얼~씬 효과적임을 나타냅니다.

 

똑같이 URP에서 테스트 하였고 결과는 비슷했습니다. 다만, URP는  격차가 좀 덜 하네요.

tris가 차이가 나는건 쉐이더가 다르기때문이라 판단됩니다.

'Unity > ETC' 카테고리의 다른 글

Memory Profiler  (0) 2020.11.10
코딩을 도와주는 비쥬얼스크립트  (0) 2020.11.10
유니티 패키지에 대한 정보는  (0) 2020.09.08
dynamic bone test  (0) 2020.08.21
RealToon Tutorials  (0) 2020.07.29

svn을 사용하다보면 유니티 패키지에 대한 정보까지 안올라가는 경우가 있습니다.

그렇다고 라이브러리를 통째로 업데이트할수 없습니다.

하여, pagckages폴더 안에 packages-lock.json을 올리면 패키지가 없는 사람은 자동으로 유니티가 받게 합니다.

 

'Unity > ETC' 카테고리의 다른 글

코딩을 도와주는 비쥬얼스크립트  (0) 2020.11.10
복사 오브젝트와 Attach 오브젝트의 포퍼먼스 차이  (0) 2020.09.29
dynamic bone test  (0) 2020.08.21
RealToon Tutorials  (0) 2020.07.29
유니티짱 쉐이더 설정  (0) 2020.07.29
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test_ani : MonoBehaviour
{
    Animator m_Animator;

    void Start()
    {
        //오브젝트에 넣는부분
        m_Animator = gameObject.GetComponent<Animator>();
    }

    void Update()
    {
        //트러거에 원하는 키패드를 넣고. 애니메이션 트리거 이름을 넣음 된다.
        if (Input.GetKey(KeyCode.Keypad0))
        {
            
            m_Animator.SetTrigger("sliding");
        }

        if (Input.GetKey(KeyCode.Keypad1))
        {
            
            m_Animator.SetTrigger("fall");
        }

        if (Input.GetKey(KeyCode.Keypad2))
        {
            
            m_Animator.SetTrigger("catch");
        }

        if (Input.GetKey(KeyCode.Keypad3))
        {
            
            m_Animator.SetTrigger("kick");
        }

        if (Input.GetKey(KeyCode.Keypad4))
        {
            
            m_Animator.SetTrigger("win");
        }

        if (Input.GetKey(KeyCode.Keypad5))
        {
            
            m_Animator.SetTrigger("jump");
        }


    }
}

넘버키를 누르면 해당되는 애니메이션이 발동하도록 짠 스크립트 입니다.

Animator가 물론 존재해야한다.

 

 

'Unity > C#' 카테고리의 다른 글

캐릭터 랜덤 모션  (0) 2020.11.02
EditorWindow  (0) 2020.10.30
C# 기초 기억창고  (0) 2020.08.09
MiniPorfiler  (0) 2020.07.29
object rotate by tag  (0) 2020.07.29

한동안 URP에 맹신하고 그쪽으로 개발을 하던중에 개발자의 뭔가 이상하다는 소리에 머리가 하얗게되었습니다.

저는 신규 게임 개발 초기때부터 URP를 써야한다고 저는 계속 주장을 하였습니다.

유니티코리아에서도 URP 포퍼먼스 향상에 대해서 자주 언급이 있었고, 실제 테스트한 내용들을 보았기 때문에

그에 대한 기대감이 있었습니다. 헌데, 실제 개발에는 차이가 있었습니다. 

 

우리 프로젝트는 RPG와 달리 씬에 등장하는 캐릭터가 수가 적고, 배경도 한화면에 한번에 뿌려지는 방식이다보니...

URP를 사용하는것이 오히려 더 무거웠습니다.

URP가 오히려 무겁고 포퍼먼스를 저해할수 있다는데 약간 놀랐습니다.

실제로 같은 환경에서 FPS속도를 보았는데, 30프레임가량 차이가 나더군요.

결론은 레거시로 돌리는걸로 이야기가 되었습니다.

많은 의문점을 남기고 다시 이전 쉐이더 방식으로 돌아갔습니다.

아직 더 연구가 필요하겠지만, 프로젝트마다 취해야할 쉐이더 방식이 다른거 같습니다.

URP나 HDRP를 맹신하면 안될거 같습니다.


위 내용에 대한 궁금증이 해결이 되었습니다.

테스트하였던 배경과 캐릭터의 문제였습니다.

URP로 변경하면서 배경의 경우 텍스쳐 한장과 하나의 폴리곤으로 구성되어있다보니 너무 단순한 구조이고,

지나치게 가벼워서 URP가 오히려 무겁게 되버렸던겁니다.

또하나는 캐릭터 쉐이더를 외부에서 만든 쉐이더를 차용했는데, SBR Bacher가 되질 않아서 무거워지면서

URP의 변경하면서 아무런 이득을 취하지 못해서였습니다.

 

이제 속이 후련하군요...ㅎ

'Unity > URP' 카테고리의 다른 글

StylizedLitShader을 약간의 변경...  (0) 2021.10.08
unlit shader에 SRP batcher를 넣어봅시다.  (0) 2021.10.06
Project Settings  (0) 2021.09.28
URP 트레이닝 기초  (0) 2021.05.26
URP를 써야하는 이유.  (0) 2020.06.10

정리중..

-  Unity 작동 환경을 지원하려면 GeForce GTX 1080 TI 이상의 그래픽 카드를 사용하는 것이 좋습니다.