játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5462
FZoli:    4892
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2522

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2190
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] > 8 < [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55]
Tunyu - Tag | 449 hsz       Online status #208119   2015.08.18 22:40 GMT+1 óra  
Szerintem pont ez az ami lent tartja a talajon!

   
Viperion - Tag | 540 hsz       Online status #208101   2015.08.14 16:07 GMT+1 óra  
http://docs.unity3d.com/ScriptReference/CharacterController.Move.html
Itt a doksiban ez a script nem hibás?
A forráskód ezen része mindig lefut:
Kód:
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);

,akkor is ha a játékos nem ugrik ezért a gravitáció átt fogja vinni a talajon nem?

Kéne oda egy byte változó ami számon tartaná,hogy éppen a levegőben van e vagy sem és akkor Így kéne hogy legyen nem:?
Kód:
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour {
    public float speed = 6.0F;
    public float jumpSpeed = 8.0F;
    public float gravity = 20.0F;
    // Ha a földön van ,akkor értéke 0 ha levegőben,akkor pedig 1.
    private byte isInAir = 0;
    private Vector3 moveDirection = Vector3.zero;
   
    void Update() {
        CharacterController controller = GetComponent<CharacterController>();
        if (controller.isGrounded) {
            moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
            moveDirection = transform.TransformDirection(moveDirection);
            moveDirection *= speed;
            isInAir = 0;
            if (Input.GetButton("Jump")) {
                moveDirection.y = jumpSpeed;
                isInAir = 1;
            }
        }
        moveDirection.y -= isInAir * gravity * Time.deltaTime;
        controller.Move(moveDirection * Time.deltaTime);
    }

Ezt a hozzászólást Viperion módosította (2015.08.18 03:27 GMT+1 óra, 978 nap)

   
mogul - Tag | 153 hsz       Online status #208097   2015.08.13 00:54 GMT+1 óra  
Idézet
Slyrfecso :

ABBAN kérném még a segítségeteket, hogy két Box Colider érintkezése esetén a visszaérkezési pont
az egyik felénél legyen.




transform (mint reference nem jó? position = position?)
vagy distance kettő között (mármint collider.pos és hit.point) és megfelezed?

   
FZoli - Szerkesztő | 4892 hsz       Online status #208094   2015.08.12 06:31 GMT+1 óra  
normalizálnod kell a képek méretét.

2D elemek méretét neked kell normalizálni. Egy olyan koorináta térbe kell őket beleméretezned ahol a kéeprnyő pozíciót nem picelben, hanem [0,0]-[1,1] float értékek között adod meg, ahol a [0,0] az egyik sarok, a [1,1] pedig az átellenes

3D elemekkel ez eleve nem létezik a probléma, ott screenspaceba transzformálsz mindent, majd raszterizálsz, egy kocka minden felbontáson azonos méretű lesz a "monitorodban". Ha fogsz egy plane-t és a kamera elé tszed, ráhúzol egy textúrát, az nem fog kilógni különbőzú felbontású képernyőkön, csak ha amonitor képeránya is eltér.

Ezt a hozzászólást FZoli módosította (2015.08.13 07:01 GMT+1 óra, 982 nap)
   
Tunyu - Tag | 449 hsz       Online status #208093   2015.08.12 05:55 GMT+1 óra  
Már miért lenne butaság!? Egy 25000x11000 pixel felbontású képet is meg tudsz nézni egy normál monitoron, az más tészta hogy mekkora a memória igénye, de ebbe a képbe bele tudsz zummolni lényegében és úgy végig pásztázhatod akár 200x120 -as felbontáson is.Vagy léteznek olyan alkalmazások unity store-ban is, amik kezelik a HD képeket úgy hogy távolról kisebb felbontást mutat és ahogy közeledsz, úgy akár a repedéseket is megnézheted a falon például.

   
Pixi - Tag | 206 hsz       Online status #208091   2015.08.11 21:27 GMT+1 óra  
Egyértelmű, hogy lebutított, kicsinyített mását látod, hisz amit a kijelző és/vagy a beálított felbontás fizikailag korlátoz, azt te csak szoftveresen tudod belegyömöszölni, ez pedig abból áll, hogy a 2000x2000-es képnek te egy 20x20-as mását látod a monitoron, vagy pedig nem kicsinyíted a kirajzolandó textúra méretét, hanem végigpásztázod 20x20-as lépésekben, bár utóbbi elég nagy idiótaság.

   
Viperion - Tag | 540 hsz       Online status #208090   2015.08.11 21:18 GMT+1 óra  
Igen erre gondoltam. És ott egyik hozzászólásba volt írva,hogy egy 20x20 as ablakban is elférhet egy fullhd kép.
De nem értem,hogy egy fullhd kép,hogyan férhet el pl egy 20x20 ablakban.
Ez csak úgy lehet ,higy veszt a felbintásából nem?

Tehát ha 20x20 pixeles a windows ablak,akkor az azt jeknti,hogy 20x20 pixelből ál.
Egy fullhd kép pedig ettől rengetegszer több,akkor hogyan férhet bele?

   
Pixi - Tag | 206 hsz       Online status #208089   2015.08.11 20:01 GMT+1 óra  
Viperion:
Mintha én tettem volna fel már régebben hasonló kérdést itt, bár most nem tudom pontosan erre gondolsz-e, de less rá, esetleg kicsit görgess lejjebb ha kell, kép is van mellékelve arról amire gondolok:

Régi hsz.

   
Tunyu - Tag | 449 hsz       Online status #208088   2015.08.11 19:04 GMT+1 óra  
Ez alapján meg tudod írni a sajátod.

   
Tibsy - Tag | 307 hsz       Online status #208087   2015.08.11 16:54 GMT+1 óra  
Szeretnék adatokat ki/be (txt,png.) tölteni egy már kész projektbe egy megadott mappából de sajnos még azt sem tudom hogy keresem az erre vonatkozó parancssort unity manual-ba
lényegébe ezzel azt szeretném megoldani hogy a játékos saját fotót rakhasson a játékba ill az ott készült eredményt ki tudja menteni valahova de se a mentésre se a betöltésre nem találtam megoldást a legapróbb segítséget is előre köszönöm
   
Slyrfecso - Tag | 44 hsz       Online status #208086   2015.08.11 14:05 GMT+1 óra  
Végre sikerült kitalálnom egy olyan megoldást ami majdnem tökéletes,
ráadásul egy tapadás funkcióval is kiegészült.
A tesztbe beépítettem egy debug.consolt, ahol látható mi is történt.

A logikai változó és az OnTrigger nagyon nagy segítség volt, még1x köszönöm mindenkinek.
(Jelenleg a két szekrényre és az első asztalra állítottam be a pontos Box colidert, így csak azok tapadnak jól)


ABBAN kérném még a segítségeteket, hogy két Box Colider érintkezése esetén a visszaérkezési pont
az egyik felénél legyen.



TESZT2

Kód:
using UnityEngine;
using System.Collections;

//[RequireComponent(typeof(BoxCollider))]

public class drag_mouse : MonoBehaviour
{

private bool Triggered = false;


Vector3
screenPoint,
offset,
scanPos,
curPosition,
curScreenPoint;



void OnMouseDrag()
{
if(Input.GetKeyDown(KeyCode.A))
transform.Rotate(0, 90, 0);

if(Input.GetKeyDown(KeyCode.C))
Destroy (gameObject);

if(Input.GetKeyDown(KeyCode.D))
Instantiate (gameObject);


float distance_to_screen = Camera.main.WorldToScreenPoint(gameObject.transform.position).z;
Vector3 pos_move = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance_to_screen ));
transform.position = new Vector3( pos_move.x, transform.position.y, pos_move.z );


}


void OnTriggerEnter (Collider myTrigger)
{
if(myTrigger.gameObject.tag == "Player")
{
scanPos = gameObject.transform.position;
Triggered = true;
Debug.Log(name + " Triggered");
}
}


void OnTriggerExit (Collider myTrigger)
{
if(myTrigger.gameObject.tag == "Player")
{
Debug.Log(name + " Snap feloldása Drag alatt");
Triggered = false;
}
}




void OnMouseUp()
{
if (Triggered)
{
transform.position = scanPos;
Debug.Log(name + " Vissza az érintkezési ponthoz");

}

}


}

   
Viperion - Tag | 540 hsz       Online status #208076   2015.08.08 23:29 GMT+1 óra  
Ha azt akarom,hogy minden képernyő felbontásban jól mutassa a játékot a képernyő ,akkor ,hogyan csináljam meg,hogy jó legyen.

Például ha van két ugyanolyan képarányú de eltérő felbontású képernyő akkor a fullh felbontásra tervezett képek sokkal nagyobbak lesznek a hd képernyőn. Ez miatt a képek egy része ki esik a képernyőből.

Még rosszabb a helyzet abban az esetben ha a képarány is más.

Hogyan kell ezt megoldani?

Ezt a hozzászólást Viperion módosította (2015.08.10 16:33 GMT+1 óra, 985 nap)

   
Instalok - Tag | 558 hsz       Online status #208073   2015.08.08 13:18 GMT+1 óra  
Egyébként a 0,0000003 miért nem jó neked a 0,0 helyett? A "rosszul állítottad" össze részt meg úgy értettem, hogy rossz helyen vannak a pivotok, az anchor lehet rossz, a méret rosszul van belőve, stb., így különböző felbontásokon máshogy néz ki.

   
Tunyu - Tag | 449 hsz       Online status #208072   2015.08.08 12:42 GMT+1 óra  
Ez a funkció csak screen space módban érhető el és kicsit javít a pontosságon, de már maradok a world space módnál, itt az instant létrehozott objektumokat viszonylag pontosan oda rakja és olyan méretben amilyenben szeretném az editorban és a build-ban is.

   
zbalai - Tag | 51 hsz       Online status #208071   2015.08.08 10:54 GMT+1 óra  
Tunyu: nekem akkor nyomta ezeke a kis számokat a UI kontrollokra amikor a Canvason "pixel perfect" beállítást használtam. Ilyenkor a több szint miatt az alsóbb szinteken törtszámora jön ki, ha pixel pontosan akarsz valamit elhelyezni.

   
Slyrfecso - Tag | 44 hsz       Online status #208065   2015.08.07 14:36 GMT+1 óra  
Lehet az a legjobb ha megmutatom, hogy mit szeretnék. Nagyon demo, ezért kérlek ne nevessetek hangosan

Test1

A bútorok nem haladhatnak át egymáson, ezért OnTrigger, vagyis érintkezés esetén egyet vissza kellene dobnia az adott tengelyen. A bútorokat pontosan egymás mellé kellene illeszteni.
Ha esetleg valaki Skypeon segítene, nagyon-nagyon hálás lennék!!!

ifjfecso.home

   
Tunyu - Tag | 449 hsz       Online status #208060   2015.08.06 23:16 GMT+1 óra  
Nem tudom mit állíthattam rosszul össze, de ha így van akkor nagyon...
Screen Space módban kipróbáltam az összes beállítási lehetőséget de sehogy sem volt jó, vagy nagyobb volt a prefab gomb mint a másik vagy fordítva vagy a pozíciója nem stimmelt, és akkor ez csak az editor mód, a buildban meg egészen más.Így maradok a world space módnál, itt legalább csak a számokban tűnik fel az eltérés.Még azt is megnéztem hogy nem a multiple camera rendszer miatt van e, de egy szimpla cameránál is ugyan az van.

Slyrfecso :
Ha ezt rádobod az objektumodra akkor szépen működik,de az OnTrigger-el nem értem hogy mit akarsz.
Kód:
using UnityEngine;
using System.Collections;

public class Drag : MonoBehaviour {
public float distance = 10;

void OnMouseDrag(){
if (Input.GetKeyDown (KeyCode.A)) {
transform.Rotate (0, 10, 0);
}
if (Input.GetKeyDown (KeyCode.C)) {
Destroy (gameObject);
}
if (Input.GetKeyDown (KeyCode.D)) {
Instantiate (gameObject);
}
Vector3 objPosition = Camera.main.ScreenToWorldPoint( new Vector3(Input.mousePosition.x,Input.mousePosition.y,distance));
transform.position = objPosition;
}

}

Ezt a hozzászólást Tunyu módosította (2015.08.07 10:17 GMT+1 óra, 988 nap)

   
Instalok - Tag | 558 hsz       Online status #208059   2015.08.06 21:31 GMT+1 óra  
Tunyu: nem lehet, hogy rosszul állítottad össze a guit, és felbontásfüggő? Ezért néz ki másképp a standalone buildben, mint az editorban.

A worldspace esetén meg valószínűleg csak kerekítési probléma. Néha odarakja, ahova írod, máskor meg nem. Ez van. Ha megnézed, az azért elég kicsi egy szám.

   
Tunyu - Tag | 449 hsz       Online status #208057   2015.08.06 20:25 GMT+1 óra  
zbalai :
Használom a SetParent-et, de nem csak az instantiate-nál van gond.Ha simán lerakom a panelt és annak gyerekeként egy buttont, hiába állítom be az x pozíciót 0 rá, amint leütöm az entert, máris elugrik az értéke 3.742288e-06-ra, de ez más elemeknél is így van. Ez van world space módban.
Screen space - camera módban meg nagyon jól működik az instantiate, precízen oda rakja az adott koordinátára és szépen működik az editorban, de amikor megvan a build, az exe-ben teljesen eltérő helyre és méretben rakja le.
A viszonylag jó worldspace: http://jatekfejlesztes.hu/datas/users/3125-worldspace.jpg
És a kevésbé jó screenspace: http://jatekfejlesztes.hu/datas/users/3125-screenspace.jpg

Ezt a hozzászólást Tunyu módosította (2015.08.06 20:36 GMT+1 óra, 989 nap)

   
Slyrfecso - Tag | 44 hsz       Online status #208053   2015.08.06 13:56 GMT+1 óra  
Még egy kis segítség kellene. Az objectumokhoz Kinematic Riggidbody-t használok így a Triggerelést tudom Debuggolni. Részben el is értem, hogy észlelés esetén a transform.position megmozduljon, de sajnos arra az objektumra van hatással amelyikhez hozzáérek és nem ahhoz amelyikkel. így eltolja a tárgyat magától.

Hogyan tudnám az OnTriggert beágyazni az OnMouseDrag-be?
Illetve, hogy Triggelés esetén egyet visszalépjen az észlelés irányából?

Kód:
using UnityEngine;
using System.Collections;

//[RequireComponent(typeof(BoxCollider))]

public class drag_mouse : MonoBehaviour
{

private Vector3 screenPoint;




void OnMouseDrag()
{
if(Input.GetKeyDown(KeyCode.A))
transform.Rotate(0, 90, 0);

if(Input.GetKeyDown(KeyCode.C))
Destroy (gameObject);

if(Input.GetKeyDown(KeyCode.D))
Instantiate (gameObject);



float distance_to_screen = Camera.main.WorldToScreenPoint(gameObject.transform.position).z;
Vector3 pos_move = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance_to_screen ));
transform.position = new Vector3( pos_move.x, transform.position.y, pos_move.z );

}


void OnTriggerEnter (Collider myTrigger) {
if(myTrigger.gameObject.tag == "Player"){
float distance_to_screen = Camera.main.WorldToScreenPoint(gameObject.transform.position).z;
Vector3 pos_move = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance_to_screen ));
transform.position = new Vector3( pos_move.x, transform.position.y, pos_move.z);
Debug.Log(name + " Triggered");
}
}

}

   
zbalai - Tag | 51 hsz       Online status #208052   2015.08.06 13:43 GMT+1 óra  
Tunyu: Az Intantiate mindig a root-ba teszi az új GameObject-et. UI elemeknél viszont érdemes áttenni egy struktúrába.
Amiko viszont átteszed SetParent-el pl akkor hozzányúlhat a koordinátákhoz is.
Mindenesetre ha akarsz 5-10 perc skype konzultációt a témában akkor keress meg zbalai usernévvel.
Ja meg ilyen hosszú cuccokat én általában kiírom több sorba, akár több változóval.

   
Tunyu - Tag | 449 hsz       Online status #208020   2015.07.31 10:59 GMT+1 óra  
Írtam egy kis kódot a popup menü létrehozásához amiben egy button prefabot hívok meg. A gond ott van hogy az instantiate hívásban megadott adatoktól jelentősen eltér a button pozíciója és a szöge is.Én rontok el valamit, vagy ez valami hiba?Próbáltam a prefabon is beállítani, de akkor sem volt pontos.
Kód:
GameObject newResButton =
(GameObject)Instantiate (ButtonPref, new Vector3 (0.0f, (-10 + resolutions.Length * 30 / 2 - 30) - i * 30, 500.0f)
                         , Quaternion.Euler(new Vector3(10.0f,15.0f,0.0f))/*Inverse (ButtonPref.transform.rotation)*/)

   
Viperion - Tag | 540 hsz       Online status #208019   2015.07.31 02:28 GMT+1 óra  
Nem bírom megérteni ezt a részt.
Vizuális típus vagyok ezért próbálom elképzelni de itt összazavarodok.
Szavakba tudnátok önteni ezt a sort:
transform.position += Vector3.ClampMagnitude(v, Mathf.Clamp(radius - v.magnitude, 0, radius));
A 208012 hozzászólásban található a teljes kód de csak ezzel az egy sorral gyűlt meg a bajom.
A dokumentációban elolvastam mit csinálnak de nem látom mire jó ez így.

Ezt a hozzászólást Viperion módosította (2015.07.31 02:36 GMT+1 óra, 996 nap)

   
warlock - Törzstag | 704 hsz       Online status #208017   2015.07.30 15:01 GMT+1 óra  
Köszi.

   
Slyrfecso - Tag | 44 hsz       Online status #208016   2015.07.30 10:03 GMT+1 óra  
Gratulálok nagyon szép munka, a videó is elég jól szemlélteti a működését.

   
warlock - Törzstag | 704 hsz       Online status #208014   2015.07.29 18:42 GMT+1 óra  
Sziasztok.
Gondoltam világgá kürtölöm hogy végre kikerült az asset storera a voxel szerkesztőm, hátha érdekel valakit.
https://www.youtube.com/watch?v=Ci1pgz5HA4Q
https://www.assetstore.unity3d.com/en/#!/content/39877

   
Slyrfecso - Tag | 44 hsz       Online status #208012   2015.07.29 14:08 GMT+1 óra  
Sajnos korai volt az öröm, mert a Physics.OverlapSphere-nek nincs Box változata.
Tudnátok abban segíteni, hogyan lehetne ezt a scriptet átírni Box collideres-re?

Kód:
using UnityEngine;
using System;
using System.Collections.Generic;

public class SuperCharacterController : MonoBehaviour {

[SerializeField]
float radius = 0.5f;

private bool contact;

// Update is called once per frame
void Update () {

contact = false;

foreach (Collider col in Physics.OverlapSphere(transform.position, radius))
{
Vector3 contactPoint = col.ClosestPointOnBounds(transform.position);

Vector3 v = transform.position - contactPoint;

transform.position += Vector3.ClampMagnitude(v, Mathf.Clamp(radius - v.magnitude, 0, radius));

contact = true;
}
}

}

   
Slyrfecso - Tag | 44 hsz       Online status #208011   2015.07.29 10:28 GMT+1 óra  
Isten király vagy!!!!!!!
A drag scriptemhez hozzáadtam az általad belinkeltet és tökéletesen működik.
A sciptben gömb collider van azt módosítottam kockára és nem mennek át egymáson az objektumok!
Riggidbody-t sem kellett használnom.

   
Instalok - Tag | 558 hsz       Online status #208010   2015.07.29 08:00 GMT+1 óra  
Rigidbody-val természetesen "pattog", mert az fizikát használ, erő-ellenerő, stb.

Amit megpróbálhatsz, az valami olyasmi, mint egy CharacterController. Mármint nem ezt használni, hanem hasonlót leimplementálni. Amire ehhez szükséged van, az az, hogy ütközéskor a Collision osztály információinak segítségével visszapakold az objektum pozícióját oda, ahol nem ütközik.

Edit:
Például valami ilyesmi, nem néztem végig.

Ezt a hozzászólást Instalok módosította (2015.07.29 08:16 GMT+1 óra, 997 nap)

   
Slyrfecso - Tag | 44 hsz       Online status #208007   2015.07.28 22:13 GMT+1 óra  
Sziasztok!

Találtam egy videót ami elég jól bemutatja az OnCollisionEnter, OnTriggerEnter, and OnMouseDrag kapcsolatát, de sajnos a Riggidbody fizikájára nincs szükségem és össze-vissza pattognak a tárgyak ha érintkeznek.

Kód:
using UnityEngine;
using System.Collections;

public class CollisionDetect : MonoBehaviour {

// Use this for initialization
void OnCollisionEnter(Collision c) {
Debug.Log(name + " Collided");
}

// Update is called once per frame
void OnTriggerEnter(Collider c) {
Debug.Log(name + " Triggered");

}
}



Kód:
using UnityEngine;
using System.Collections;

public class MouseDrag : MonoBehaviour {


// Use this for initialization
void OnMouseDrag() {
RaycastHit hitInfo;
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
Debug.DrawRay(ray.origin, ray.direction * 100);
if(Physics.Raycast (ray,
                    out hitInfo,
                    100,
                    (1<<LayerMask.NameToLayer("Ground"))) ){
transform.position = new Vector3(hitInfo.point.x, transform.position.y, hitInfo.point.z);
};

}
}

   
Slyrfecso - Tag | 44 hsz       Online status #208005   2015.07.28 15:38 GMT+1 óra  
Köszönöm a tanácsot valóban ez a probléma, de sajnos nem tudom megoldani.
Egyszerűsítettem a kódot, így ha tudnátok segíteni, megköszönném.

Kód:
using UnityEngine;
using System.Collections;

[RequireComponent(typeof(BoxCollider))]

public class drag : MonoBehaviour
{

void OnMouseDrag()
{
float distance_to_screen = Camera.main.WorldToScreenPoint(gameObject.transform.position).z;
Vector3 pos_move = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance_to_screen ));
transform.position = new Vector3( pos_move.x, transform.position.y, pos_move.z );

}


}

   
Viperion - Tag | 540 hsz       Online status #208004   2015.07.27 16:57 GMT+1 óra  
Szerintem OntriggerEnter metódust használd.
Ha ütköznek át álítasz egy logikai változót hamisra. Ebben a logikai változóban tárold,hogy ütköznek e vagy sem. És azt,hogy kurzorral mozgathatod e az objektumot vagy sem kösd ahhoz a feltételhez,hogy ennek a logikai változónak igaznak kell lennie.

   
Instalok - Tag | 558 hsz       Online status #208003   2015.07.27 16:32 GMT+1 óra  
Ha ütközést, vagy egyéb fizikát szeretnél, akkor nem írhatod felül a transform pozícióját. Gondolj bele, az ütközésnek kell meghatároznia a pozíciót.

   
Slyrfecso - Tag | 44 hsz       Online status #208002   2015.07.27 14:04 GMT+1 óra  
Kód:
using UnityEngine;
using System.Collections;

//[RequireComponent(typeof(BoxCollider))]

public class drag_mouse : MonoBehaviour
{

private Vector3 screenPoint;
private Vector3 offset;

void OnMouseDown()
{
screenPoint = Camera.main.WorldToScreenPoint(gameObject.transform.position);

offset = gameObject.transform.position - Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPoint.z));
}

void OnMouseDrag()
{
if(Input.GetKeyDown(KeyCode.A))
transform.Rotate(0, 90, 0);

float distance_to_screen = Camera.main.WorldToScreenPoint(gameObject.transform.position).z;
Vector3 pos_move = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, distance_to_screen ));
transform.position = new Vector3( pos_move.x, transform.position.y, pos_move.z );

}


}

   
Slyrfecso - Tag | 44 hsz       Online status #208001   2015.07.27 14:04 GMT+1 óra  
Sziasztok!

Új tagként szeretnék segítséget kérni egy alapvető fejlesztői problémához.
Adott két alap kocka. Ezeket egérrel mozgatom, azonban bármit állítok átmennek egymáson.
Azt szeretném, hogy egymás mellé érve az egeret elengedve megálljon abban a pozicióban.

Előre is köszönöm a segítséget.

   
Tunyu - Tag | 449 hsz       Online status #207995   2015.07.25 08:59 GMT+1 óra  
Igazad van annak nem sok köze van hozzá, csak már nem tudtam hova tenni ezt a dolgot. A probléma okozója a player settings-ben bekapcsolt virtual reality support volt. Nem futott a háttérben a program , és a vsync sem működött.

   
Instalok - Tag | 558 hsz       Online status #207994   2015.07.25 06:49 GMT+1 óra  
Mi köze van a UI-nak a vsynchez? Nem volt mostanában már egy ilyesmi kérdésed?

   
Tunyu - Tag | 449 hsz       Online status #207990   2015.07.24 14:47 GMT+1 óra  
Az "új" UI rendszerre próbálok átállni, de van némi problémám. A régi UI-nál a beállításoknál jól működött a vsync és a targetframerate is, de itt az új UI-nál már valami oknál fogva figyelmen kívül hagyja és maximumon pörög.Mi lehet a hiba?

   
Instalok - Tag | 558 hsz       Online status #207989   2015.07.23 06:43 GMT+1 óra  
Igen, ennyi a lényege. Ha meg nem normalizálod, akkor átlós irányban gyorsabban haladsz, mert a vektor hossza nem 1.

Ha Unity-zel, akkor is tanulnod kell egy minimális 3D grafikához szükséges matekot. Keress valami olyan anyagot, ami ábrákkal / példákkal magyarázza el ezeket a dolgokat, nem kell belemenni a matek legmélyébe. Viszont hidd el, szükséged lesz rá, és sokkal könnyebben meg fogsz érteni, illetve meg fogsz tudni oldani problémákat.

   
Viperion - Tag | 540 hsz       Online status #207988   2015.07.22 21:58 GMT+1 óra  
Kösz Zbalai,hogy szentelnél rám időt. De úgy döntöttem még egyszer megpróbálom neki vetem magamat ennek a feladatnak

Instalok te írtad,hogy ha több irányba is megyek akkor legyen a velocity hossza egy.
Értem miért kell normalizálni de azt már nem értem,hogy,hogyan lehet több irányt adni ,hogy aztán normalizálásra legyen szükség.

Így gondoltad:
Vector3 velocity = Vector3.right;
velocity += Vector3.up;
És akkor ilyenkir kell normalizálni.

Így gondoltad?

   
zbalai - Tag | 51 hsz       Online status #207982   2015.07.20 20:48 GMT+1 óra  
Viperion:
Hát szerintem mindenkinek van problémamegoldó képessége.

Egyébként ha meg konkrétan egy probléma megoldására kérsz kb max fél óra screen sharing-es konzultációt, akkor akár én is szívesen segítek.

Excel használata megtanulható 1-2 óra alatt. A kódolást magasabb szinten évekig szokták tanulni.
Unity 3D-hez soxor elég a "scriptelés" szint is, amikor csak pár sorban beírsz valami automatikát.

   
Viperion - Tag | 540 hsz       Online status #207981   2015.07.20 16:19 GMT+1 óra  
Az udk hoz túl gyenge a gépem.
Úgy döntöttem a lehető legegyszerűbbet választom és ha ezzel sem fog menni,akkor nyomorult vagyok. :-)
Construct2d úgy ajánlották. Nagy a közössége is és aktívan fejlesztik. Lemondok a kódolásról.
Én pedig köszönök mindent nektek amit eddig tőletek kaptam. Lebaszásoktól a segítségekig és sok sikert.
Lehet,hogy a siker egyik titka az,hogy legyünk tisztában képességeink határaival.

Egyébként a fejembe látom,hogy kéne manipulálani a velocity-t hogy a kívant eredményt kapjam csak amikor a kódolásra kerül a sor ,akkor leblokkolok teljesen.

   
FZoli - Szerkesztő | 4892 hsz       Online status #207980   2015.07.20 14:25 GMT+1 óra  
Nyilvánvalóan nincs problémamegoldó képességet, és úgy néz ki türelmed sem ahhoz, hogy a unity-t úgy megismerd, hogy ellensúlyozni tudd ezt.. Esetleg próbálj meg valamit UDK-val összedobni. Nem mondanám egyszerűbbnek, de jobban alád tesz dolgokat, van ismerősöm, aki hasonló okokból tért át. Akár mit is választasz, ne próbáld meg feltalálni a spanyol viaszt, hanem próbáld meg az eszköz asta lehetőségeket használni
   
Lord_Crusare - Törzstag | 1302 hsz       Online status #207979   2015.07.20 13:46 GMT+1 óra  
Ehhez fizikát kellene használni és erőhatásokkal dolgozni, nem rögtön eltolni a modellt abba az irányba, amerre mennie kell.

   
Viperion - Tag | 540 hsz       Online status #207978   2015.07.20 13:45 GMT+1 óra  
Asszem lemondok a programozásról. És köszi a kódot profi vagy.
Hiába értem a kódodat ha jön a következő probléma amit kitalálni szintén nem tudok.
Elegem van már abból,hogy újból erőt veszek magamon majd később kiderül,hogy teljesen felesleges volt. Nézek magamnak valami egyszerűbbet amiben lehetnek sikerélményeim a 3d ről pedig lemondok. Tudnátok ajánlani nekem valamit az unity helyett?

Egyébként azt nem tudtam kódba önteni,hogy amikor megfordulok az űrhajóval mikor már megyek vele egész gyorsan,akkor ne egyből az új irányba haladjon amit az iputtal beálítottam,hanem lassuljon le 0 ra majd úgy vegye fel az új irányt. Mert csak így képes rá mert ugye elősször le kell győzni azt az irányú mozgási sebességet ami a régi irányba vitte.

   
Instalok - Tag | 558 hsz       Online status #207976   2015.07.20 06:45 GMT+1 óra  
Lehet, hogy elírtam valamit, kicsit reggel van még, és nem próbáltam ki:
Kód:
// ennyivel gyorsul
public float acceleration;

// jelenlegi tempó
private float currSpeed = 0.0f;

private void FixedUpdate()
{
    currSpeed += acceleration * Time.deltaTime; // ennyivel megy
    Vector3 velocity = Vector3.right; // amerre menni akarsz
    //velocity.Normalize(); // ha több irányba is mész egyszerre, legyen a velocity hossza 1

    transform.Translate(velocity * currSpeed); // mozgás
}

   
Viperion - Tag | 540 hsz       Online status #207975   2015.07.20 00:00 GMT+1 óra  
Egyenletes sebeséggel gyorsuló objektumot,hogyan kell leprogramozni mert nem megy.
Másodpercenként 5 pixelt gyorsuljon de nem tudom kigondolni az algoritmust.

Találtam egy ilyet de nekem ez nem jó.
Kód:
     var acceleration : float;
     var maxSpeed : float;
     
     function Update() {
     transform.Translate(0, acceleration * Time.deltaTime, 0);
     if (acceleration < maxSpeed) {
     acceleration += 1;
     }
     }

Nekem olyan megoldás kell amivel be tudom lőni azt,hogy egy másod perc alatt mennyit gyorsuljon.
Nem sikerül kitalálnom az algoritmust.

Ezt a hozzászólást Viperion módosította (2015.07.20 00:34 GMT+1 óra, 1007 nap)

   
Instalok - Tag | 558 hsz       Online status #207973   2015.07.19 16:38 GMT+1 óra  
Meg lehet-e mondani valahogy a Unity-nek, hogy a compile nem sikerült? Úgy értem szándékosan. Code injectiont csinálok, amiben van bizonyos mértékű hibakezelés is. Azt szeretném, ha a weaving közben hibát talált, akkor ugyan úgy ne lehessen elindítani / buildelni, mintha compiler error lett volna.

Megkerestem azt, hogy mi írja ki a képernyőre, hogy "all compiler errors have to be fixed ...", de azt már nem találtam meg, hogy ezt a függvényt ki hívja meg.

   
Matzi - Szerkesztő | 2522 hsz       Online status #207957   2015.07.16 19:58 GMT+1 óra  
Whiletrue:
A fizetési igény nagy szórást tud mutatni. Annyit nem árt megjegyezni, hogy a játékszakma alapvetően nem a legjobban fizető iparágak közé tartozik. Így mondjuk egy más területen működő cégnél akár 200 körül is simán várhatsz kezdő fizetést programozóként nulla tapasztalattal, addig mondjuk egy játékfejlesztő cégnél könnyen lehet, hogy csak a felét-háromnegyedét fogják adni. Sok mindentől függ, leginkább a cég anyagi helyzetétől, és hogy mennyire kell nekik az ember.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Instalok - Tag | 558 hsz       Online status #207956   2015.07.16 18:52 GMT+1 óra  
A C# topicban érdeklődtem code rewrite után, megvan az én emberem: Mono.Cecil lesz az, amit én kerestem. Egészen jól működik, egy idő után rá lehet érezni, hogy mi a különbség a Definition meg a Reference között, mikor mit kell importálni, getelni, stb. No meg nem árt némi assembly-ismeret sem, mivel lowlevel kódot kell injectálni.

Apropó, a Unity is így dolgozik a Networkinggel. Az RPC meg SyncVar stb. mindegyik átalakul, ezt a Unity.UNetWeaver assembly csinálja. ILSpy segítségével meg lehet nézni, hogy mit csinál. Aki ilyesmire vetemedik, annak ez egy nagyon hasznos progi.

   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] > 8 < [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55]